带有php变量的PDO查询

带有php变量的PDO查询,php,pdo,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 (... 如何解决此问题?PDO查询中不能替换表名 您可以在以下线程中找到更多信息 不幸

为什么这条线不起作用:

$db_Table = "myTable";

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

$query->execute(array(
    ':db_Table' => $db_Table,  
鉴于这一点有效:

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

如何解决此问题?

PDO查询中不能替换表名

您可以在以下线程中找到更多信息

不幸的是,没有用于绑定表名的内置函数,您必须自己执行:

$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 !
}

Yu不能在准备好的语句中使用表名、字段名或其他标识符作为变量。您需要通过连接或替换标识符来构建基本查询,然后
prepare
该结果。是的,但这一个也不起作用:
$pdo->prepare(“INSERT INTO$db_Table
)。这个解决方案怎么样:这不会有帮助,因为您正在使用pdo