我尝试执行下面的代码但是当我尝试var_dump $query
时,我有下一个:{ ["queryString"]=> string(44) "SELECT * FROM
帖子WHERE :where LIMIT 15;" }
代码:
$query = Main::$data_base->pdo->prepare(
'SELECT ' . $fields . ' ' .
'FROM `posts` ' .
'WHERE :where ' .
'LIMIT ' . $posts_quantity . ';'
);
$query->bindParam( ':where', $where, PDO::PARAM_STR );
$query->execute();
答案 0 :(得分:0)
必须使用键值对进行绑定:
正确:
where a=:value
在哪个值当然可以是任何名称(不要在未来的开发人员的礼貌中使用保留的关键字)。
不允许使用参数绑定替换完整部分的查询:
where :my_where_clause
:my_where_clause
不允许a=b
。这样做的原因是参数绑定是针对那些在该时间点立即转义以防止SQL注入的参数,这是my_where_clause
方法无法实现的。