【发布时间】:2013-08-27 18:48:20
【问题描述】:
我需要知道是否可以在 PDO 准备语句中使用问号 (?) 作为表名。
$table = $_POST['table'];
$id = $_POST['id'];
$sql = "UPDATE ? SET priority = priority + 1 WHERE id = ?";
$q = $db->prepare($sql);
$q->execute(array($table,$id));
我收到此错误:
警告:PDO::prepare() [pdo.prepare]: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '? 附近使用的正确语法。 SET 优先级 = 优先级 + 1 WHERE id = ?'
【问题讨论】:
-
感谢@tadman 提供的建议链接
-
仅供参考,如果您需要 - 很可能您的数据库结构有误
标签: php mysql pdo prepared-statement tablename