$params数组中有3个元素
当我单独使用$branchid
或$chainid
时,它们工作得很好,但是当我同时使用它们时,它不起作用,我几乎100%肯定它与组合时的"&"(引用)有关。
有什么好主意吗?
第一个var_dump
(单过滤器)(这个有效)
array(2) {
[0]=>
&string(1) "s"
[1]=>
&string(3) "405"
}
第二个var_dump(两个过滤器)(不工作)
array(3) {
[0]=>
&string(2) "ss"
[1]=>
&string(3) "329"
[2]=>
&string(3) "405"
}
$types = '';
$params = array(&$types);
if ($branchid != null) {
$sql .= "AND a.branchid = ?";
$types .= 's';
$params[] = &$branchid;
}
if ($chainid != null) {
$sql .= "AND a.chainid = ?";
$types .= 's';
$params[] = &$chainid;
}
var_dump($params);
// SQL //
if ($stmt = $this->dbCon->prepare($sql)) {
//$stmt->bind_param("s", $chainid);
call_user_func_array(array($stmt, 'bind_param'), $params);
我知道了,我需要在第二个过滤器上放一个空格字符因为当我组合两个过滤器时$sql是"AND a = aAND b=b"