为什么这条线不起作用:
$db_Table = "myTable";
$pdo->prepare("INSERT INTO :db_Table VALUES (...
$query->execute(array(
':db_Table' => $db_Table,
这个有效:
$pdo->prepare("INSERT INTO myTable VALUES (...
我该如何解决?
答案 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 !
}