Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组未显示内爆结果中的匹配项_Php_Mysql_Sql - Fatal编程技术网

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

Php 数组未显示内爆结果中的匹配项,php,mysql,sql,Php,Mysql,Sql,我得到了一个记录ID数组,准确地说是1000,它正确地返回。为了将它们绑定到另一个结果集,我正在对它们进行内爆,当我打印内爆变量时,它会为返回的每个ID打印一个问号: $openArray = []; while($openRow = $openOrders->fetch(PDO::FETCH_ASSOC)){ $openArray[] = $openRow['order_id']; } $openOrderIDs = implode(',',$openArray); prin

我得到了一个记录ID数组,准确地说是1000,它正确地返回。为了将它们绑定到另一个结果集,我正在对它们进行内爆,当我打印内爆变量时,它会为返回的每个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
,其中orderc与占位符中的ID匹配

我应该有1000个匹配项,但我现在没有,我想这是因为我没有从占位符正确绑定。问题是我也没有得到错误,只是一个空数组/结果


我完全遗漏了什么吗?

您是否在$getMatches之前进行了变量转储($Placeholder)以查看变量中的内容?
orderC as order
vs
$matchRow['invnoc']
可能是其中的一部分。@PatrickQ我刚刚在上面的代码中修复了这一点,但在我的代码中没有匹配,仍然是相同的。您没有在列中存储逗号分隔的值,是吗>@Inazo是的,它为上一个数组中的每个值打印一个问号