微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP / PDO:准备语句在创建表时不起作用?

当我使用PDO预处理语句,并使用它来插入查询失败的表名时,一个简单的例子:
$stmt = $dbh->prepare("CREATE TABLE ? (id foo,int bar,...)");
$stmt->execute(Array('table_foobar'));

它所做的只是替换?使用’table_foobar’,单引号不允许为我创建表格!

我最终需要在预准备语句的TOP上执行sprintf以添加预定义的表名.

我到底在这里错过了什么?

我在手册中找不到任何明确的内容,但是查看用户贡献的注释,参数的使用仅用于实际值,而不是表名,字段名等.

应该(并且可以)使用正常的字符串连接.

$tablename = "tablename";
$stmt = $dbh->prepare("CREATE TABLE `$tablename` (id foo,...)");

原文地址:https://www.jb51.cc/php/138546.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐