我正在尝试将包含以下内容的mysql_query语句转换为PDO:
$string = '2, 3, 4, 5, 7, 8';
mysql_query(" ... IN($string) ...");
这适用于mysql_query
语句,但它不适用于PDO准备和执行(不返回任何结果)。
我在这里缺少什么?
答案 0 :(得分:1)
如果查询sql与mysql_query
一起正常工作,那么它可以正常使用pdo。
如果只用一个占位符绑定整个字符串,那么什么是行不通的。
您需要为IN
子句的每个值绑定。
示例:强> 的
$string = '2, 3, 4, 5, 7, 8';
$params = explode(', ', $string);
$sth = $pdo->prepare(' ... IN('.join(',', array_fill(0, count($params), '?')).') ...');
$ret = $sth->execute($params);
答案 1 :(得分:1)
请参阅PDO binding values for MySQL IN statement或Can I bind an array to an IN() condition?。
我认为这是您正在寻找的解决方案,因为您无法将多个值绑定到单个命名参数中。
答案 2 :(得分:0)