【发布时间】:2015-05-12 08:34:29
【问题描述】:
以下是我的查询:
$key = array(1,2);
$in = join(',', array_fill(0, count($key), '?'));
$statement = $pdo->prepare("SELECT * FROM posts WHERE posts.subid IN (".$in.") AND posts.pricing=? AND posts.Poscode=? ORDER BY posts.Poscode DESC LIMIT 60");
$result = array_merge($key, array($rate,$postcode));
$statement->execute($result);
当我将 $key = array(1,2); 替换为 $key = array($key); 时,查询只获取第一个 ID 的数据,我假设它将数组转换为字符串。
$key 也将值 1,2 保存在如下所示的数组中:
$a=$data['sub'];
$key0=array();
foreach($a as $v=>$k)
{
$key0[]=$v;
}
$key2=implode(',',$key0);
$key = array($key2);
如何让 PDO 理解 $key 保存的是数组值而不是字符串?
【问题讨论】:
-
不应该
$in应该在IN子句中,而不是那个未定义的$key2 -
@Ghost,抱歉错字,现已更正但同样的问题