Php 如何在带有PDO的Mysql查询中使用变量
我想在mysql查询中安全地使用变量。我用pdo来做这个。但我不能使用pdo占位符作为表名 这是有效的Php 如何在带有PDO的Mysql查询中使用变量,php,mysql,pdo,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(array($id));
但事实并非如此
$stmt = $db->prepare("SELECT * FROM ? WHERE id=?");
$stmt->execute(array($table, $id));
我做错了什么?这里有一个简单的答案
$statement = $db->prepare("SELECT * FROM table WHERE id=(:some_id)");
$statement->execute(array(':some_id' => $row['id']));
您应该为它提供key=>value格式 就这么做吧
$stmt = $db->prepare("SELECT * FROM ".$table." WHERE id=?");
$stmt->execute($id);
不能对表使用占位符
这应该不是问题,因为表名应该是您可以控制的。您不能为表/字段名使用占位符-您已经在问题中回答了这个问题。。。您需要将它们插入字符串中;见:谢谢你的回复。我已经在用这个了。我只是想找到一些新的东西。投票否决它的原因是什么。