我在$ 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);
答案 0 :(得分:0)
我想通了,我需要在第二个过滤器上放一个空格字符,因为当我合并2个过滤器时,$ sql是“AND a = aAND b = b”