我需要知道在PDO準備語句中是否可以使用問號(?
)作爲表名或不是。在PDO準備語句中使用問號而不是表名
$table = $_POST['table'];
$id = $_POST['id'];
$sql = "UPDATE ? SET priority = priority + 1 WHERE id = ?";
$q = $db->prepare($sql);
$q->execute(array($table,$id));
我得到這個錯誤:
Warning: PDO::prepare() [pdo.prepare]: 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 '? SET priority = priority + 1 WHERE id = ?'
謝謝@tadman建議的鏈接 –
僅供參考,如果你需要的話 - 很可能你的數據庫結構是錯誤的 –