gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:00:11 26 4
gpt4 key购买 nike

我有一个返回 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 正在跟踪记录和订单——封闭系统,因此安全注入(inject)不是问题

最佳答案

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

while ($g  < [desired_count]) {
array_push($UsedQty,0);
array_push($NewQty,0);
$g++;
}

[desired_count] 应设置为将在 WHERE 子句中测试的元素数量。

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

关于PHP使用数组定义的where语句列名查询表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com