数组未显示内爆结果中的匹配项

时间:2018-08-21 15:26:49

标签: php mysql sql

我得到一个记录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个匹配项,但现在没有任何匹配项,我认为这是因为我没有正确地与占位符绑定。问题是我也没有收到错误,只是一个空数组/结果。

我只是完全错过了什么吗?

0 个答案:

没有答案