我得到一个记录ID数组,准确地说是1000个,并且返回正确。为了将它们绑定到另一个结果集,我对它们进行内插处理,当我打印implode变量时,它为返回的每个ID打印一个问号:
$openArray = [];
while($openRow = $openOrders->fetch(PDO::FETCH_ASSOC)){
$openArray[] = $openRow['order_id'];
}
$openOrderIDs = implode(',',$openArray);
print_r($openArray); //This prints the proper array of 1000 ids
到目前为止,我已经达到了期望。接下来的部分基本上是从另一个数据库表中选择一个字段,该字段与内插的$placeHolder
数组上的字段匹配
$getMatches = "
SELECT
orderC as order
FROM orders
WHERE orderC IN ($openOrderIDs)
AND status = 'S'
";
try{
$openMatches = $DB2conn->prepare($getMatches);
$matchResult = $openMatches->execute($openOrderIDs);
}catch(PDOException $ex){
echo "QUERY FAILED!: " .$ex->getMessage();
}
$matchArray=[];
while ($matchRow = $openMatches->fetch(PDO::FETCH_ASSOC)) {
$matchArray[] = $matchRow['order'];
}
print_r($matchArray);
因此,基本上,在返回的1000个ID中,我要执行下一个SELECT WHERE orderc matches ID in placeholders
。
我应该有1000个匹配项,但现在没有任何匹配项,我认为这是因为我没有正确地与占位符绑定。问题是我也没有收到错误,只是一个空数组/结果。
我只是完全错过了什么吗?