gpt4 book ai didi

php - MYSQLi返回0,但是查询在数据库上执行

转载 作者:行者123 更新时间:2023-11-29 02:59:27 24 4
gpt4 key购买 nike

当我试图在PHP中执行一个函数时,MySQLi查询正在执行,但只返回值0,但是查询在数据库上执行。

function get_delivery_cost($mysqli, $item_ids) {
$query = $mysqli->prepare("SELECT (max(item_single_cost) + sum(item_additional_cost)) AS total FROM item_delivery WHERE item_id IN (?) AND item_single_cost NOT IN (SELECT max(item_single_cost) FROM item_delivery WHERE item_id IN (?)) LIMIT 1");
$query->bind_param('ss', $item_ids, $item_ids);
$query->execute();
$query->store_result();
$query->bind_result($delivery_cost);
$query->fetch();
return $delivery_cost;
}

$item_ids的示例是1,2,3,当直接在数据库上运行相同的查询时,total列返回3.30英镑,而MySQLi函数返回0。
运行该函数的php是:
<? 
array_push($item_ids, $basket_item->item_id);
$ids = join(',', $item_ids);
$delivery_cost = get_delivery_cost($mysqli, $ids);
echo number_format($delivery_cost, 2);
?>

最佳答案

我敢肯定问题出在这部分情况上:

item_id IN (?)

如果在(1,2,3)中 $ids$ is set to '1,2,3', then this is equivalent to项目id='1,2,3' and not to项目id。相反,您可以直接替换这些值:
item_id in (".$ids.")

关于php - MYSQLi返回0,但是查询在数据库上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947874/

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