我试图更新我的数据库使用PDO语句,我没有真正的问题,直到我尝试使用变量作为名称和字段进行更新。PDO语句,其中表和字段名称是变量
$real_function = 'top' ;
$value = 99 ;
$tableName = "twitter_control" ;
$stmt = $pdo->prepare("UPDATE ? SET ?=? WHERE id='control' ");
$stmt->execute(array($tableName, $real_function, $value));
如果我使用此代码都按预期工作
$stmt = $pdo->prepare("UPDATE twitter_control SET top=? WHERE id='control' ");
$stmt->execute(array($value));
我怎样才能使这项工作? ,有什么建议吗?
当使用实际准备好的语句(而不是仿真)时,说参数被转义并用引号括起来是不正确的。实际情况是,字符串*作为单独的变量*传递给数据库,该数据库将其直接插入* compile *查询计划中,而不是SQL语句本身。 (效果是一样的,但它解释了为什么*你不能在其他上下文中使用参数。) – IMSoP 2013-05-02 22:04:25