【发布时间】:2020-11-10 14:30:17
【问题描述】:
我正在尝试将可变数量的值绑定到我准备好的语句的 IN () 条件中,并稍后在查询中绑定更多值,但出现错误:
PHP 致命错误:参数解包后无法使用位置参数。
我的代码如下:
$ccarr=explode(",", $cc);
$in = str_repeat('?,', count($ccarr) - 1) . '?';
$op_r=$tfvarr[2];
$budg_et=$tfvarr[1];
$budg_et1=$tfvarr111111;
$sqldesk="SELECT subsubcatid_parent, plink, deskid, sum(itprice) as totprice FROM desktop_items a, items_table b, obsubsubcat c where subsubcatid_parent IN ($in) and a.itno = b.itno and a.subsubcatid_parent=c.subsubcatid group by subsubcatid_parent, deskid having totprice > ? && totprice ? ?" ;
if($stmtdesk = $conn->prepare($sqldesk))
{
$types = str_repeat('i', count($ccarr));
$types .= 'isi';
$stmtdesk->bind_param($types, ...$ccarr, $budg_et1, $op_r, $budg_et);
$stmtdesk->execute();
$stmtdesk->store_result();
$stmtdesk->bind_result($subsubcatid_parentdesk, $plinkdesk, $deskiddesk, $totpricedesk);
}
如何绑定所有值而不出现解包错误?
【问题讨论】:
-
请不要参与回滚战。我通过应用适当的格式并删除不相关的“请帮助”签字来改进您的问题。
标签: php mysqli prepared-statement bindparam argument-unpacking