php - 如何通过 PDO 在 Mysql 查询中使用变量

标签 php mysql pdo

我想在 mysql 查询中安全地使用我的变量。我为此使用 pdo 。但我不能使用 pdo 占位符作为表名。

这有效;

$stmt = $db->prepare("SELECT * FROM table WHERE id=?");
$stmt->execute(array($id));

但这不是;

$stmt = $db->prepare("SELECT * FROM ? WHERE id=?");
$stmt->execute(array($table, $id));

我做错了什么?

最佳答案

就这么做

$stmt = $db->prepare("SELECT * FROM ".$table." WHERE id=?");
$stmt->execute($id);

不能在表格中使用占位符

这应该不是问题,因为表名应该由您控制。

关于php - 如何通过 PDO 在 Mysql 查询中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648431/

相关文章:

PHP,按日/月/年从表中以月为间隔获取事件

php - 服务器配置中/usr/sbin/sendmail -t -i 和/usr/sbin/sendmail 有什么区别?

PHP 和 MySQL 密码问题

mysql - #1273 - 未知排序规则 : 'utf8mb4_unicode_ci' cPanel

mysql - 在没有主键的情况下检索每个组中的最后一条记录

php - 将数组绑定(bind)到 =ANY() 条件的 SQL 注入(inject)

php - 警告 : Cannot connect to database (connecting to 3. 22、不支持 3.23 和 4.0)SQLSTATE [HY000] [2054]

php - Mysql添加重复的varchar

php - pdo 查询仅在第一次有效

PHP PDO - PHP 解析错误 : syntax error, 意外 T_ENCAPSED_AND_WHITESPACE