为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 使用由数组定义的 where 语句列名查询表

PHP 使用由数组定义的 where 语句列名查询表

PHP
叮当猫咪 2021-06-27 10:24:50
我有一个查询,它返回 2 个数组,每个数组可以有 0 到 5 个结果。我需要获取数组的结果并使用它们来运行第二个查询,其中 where 语句中的列由数组分配这是基本代码$result = $conn->query("SELECT UsedQty,NewQty FROM Legend where Name like '$Use%'"); while($row = $result->fetch_assoc()) { $UsedQty[$g]=$row['UsedQty'];  $NewQty[$g]=$row['NewQty'];  $g++;         }$result = $conn->query("select * from remainder where po = '$po' and(($UsedQty[0]>0 or $UsedQty[1]>0 or $UsedQty[2]>0) or ($NewQty[0]>0 or $NewQty[1]>0 or $NewQty[2]>0)) limit $cnt,1");并且只要所有变量的值都有效,但如果数组只有 1 或 2(或 0)个值,则它将不起作用我也试过     $result = $conn->query("select * from remainder where po = '$po' and($UsedQty[$g]>0)  limit $cnt,1");它必须在单个查询中完成,因为变量 $cnt 跟踪记录和订单——封闭系统,因此安全注入不是问题
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

在执行查询之前用所需数量的元素填充数组。像这样的事情可能会奏效:


while ($g  < [desired_count]) {

    array_push($UsedQty,0);

    array_push($NewQty,0);

    $g++;

}

在[desired_count]应设置为,将WHERE子句中被测试元件的数目。


查询将如何返回 0-5 行并不明显(基于“ 2 个数组 [that] 每个数组可以有 0 到 5 个结果”)。查询将返回 1 个数组;该while循环创建2个阵列。也许这($UsedQty[0]>0 or $UsedQty[1]>0 or $UsedQty[2]>0)是一个打字快捷方式,目的是测试 5 个值?在这种情况下[desired_count]将是 5。


查看完整回答
反对 回复 2021-07-02
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信