Autor Zpráva
Steriogram
Profil *
Ahoj, snažím se napsat si první skript s napojením na databázi a chtěl bych se zeptat, kde mám chybu :
$sql = $conn->prepare("SELECT * FROM :table WHERE :where=:where_is");
$sql->execute(array(':table' => $this->table,':where' => $this->where, ':where_is' => $this->where_is));

protože to neustále vyhazuje chybu
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tabulka' WHERE 'sloupec'='hodnota'' at line 1'

Z chyby soudím, že bude problém v SQL dotazu, ale nevím, jak ho s pomocí prepare() sestavit. Budu vděčný za všechny rady.
Jan Tvrdík
Profil
Steriogram:
Název tabulky a sloupce nelze v prepared statements parametrizovat.
Alphard
Profil
Můžete sáhnout např. k dibi.
Tím ale nechci říct, že takto obecný (a zároveň velmi omezený) dotaz je správná cesta. Lepší je do where klauzule např. dynamicky rozvinout asociativní pole apod.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: