Php 数组未显示内爆结果中的匹配项
我得到了一个记录ID数组,准确地说是1000,它正确地返回。为了将它们绑定到另一个结果集,我正在对它们进行内爆,当我打印内爆变量时,它会为返回的每个ID打印一个问号: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
$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是的,它为上一个数组中的每个值打印一个问号