用php变量进行PDO查询

时间:2014-10-04 17:49:04

标签: php pdo

为什么这条线不起作用:

$db_Table = "myTable";

$pdo->prepare("INSERT INTO :db_Table VALUES (...

$query->execute(array(
    ':db_Table' => $db_Table,  

这个有效:

$pdo->prepare("INSERT INTO myTable VALUES (...

我该如何解决?

2 个答案:

答案 0 :(得分:0)

无法在PDO查询中替换表名。

您可以在以下主题中找到更多信息 Can PHP PDO Statements accept the table or column name as parameter?

答案 1 :(得分:0)

遗憾的是,没有用于绑定表名的内置函数,您必须自己完成:

$db_Table = "myTable";
$query = $pdo->prepare("INSERT INTO `$db_Table` VALUES (...)");
$query->execute();

但是仍然没有被转义,一种解决方法是拥有一个表数组,然后检查它是否存在:

$list_of_tables = array('myTable1', 'myTable2', 'myTable3');
if(!in_array($db_Table, $list_of_tables){
  //table does not exist !
}