开发者社区> 问答> 正文

为什么PHP中使用PDO::prepare,MySQL表名不能使用占位符?

已解决

$count=$dbh->prepare("select * from ? where score<?");
$count->execute(array($table,$score));
$countNum=$count->rowCount();
返回$count=0

$count=$dbh->prepare("select * from {$table} where score<?");
$count->execute(array($score));
$countNum=$count->rowCount();
正常返回$count=45

展开
收起
我的中国 2016-02-08 13:39:34 3090 0
1 条回答
写回答
取消 提交回答
  • R&amp;S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者
    采纳回答

    Prepare Statement 是对传入参数进行预编译,并不是所有的 SQL 字符都能被占位符替换,只有符合参数条件的地方,才能参与预编译。

    2019-07-17 18:28:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载

相关镜像