我一直试图让这个工作在大部分时间都无济于事。绑定参数错误(PHP)
基本上,我想bind_param()的一个foreach()循环中,但是,当我这样做,我得到以下错误:
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in /nfs/domains/domain.com/html/v2/includes/classes/class.Database.php on line 72
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in /nfs/domains/domain.com/html/v2/includes/classes/class.Database.php on line 72
我假设这是由于PHP认为由于循环内部有单个bind_param()语句,只有一个参数被绑定,因此它与prepare语句中指定的参数数量不匹配。
如果这是正确的,我该如何纠正?
代码提取物(管线19):
public function query($sql, $params) {
if(!$sobj = $this->conn->prepare($sql)) {
die('Query Prepare Error (' . $this->conn->mysqli_errno . ') '
. $this->conn->mysqli_error);
} else {
if(!is_array($params)) {
$params = array_slice(func_get_args(), 1);
}
foreach($params as $value) {
$type = strtolower(gettype($value));
$sobj->bind_param($type[0], $value);
}
$sobj->execute();
$sobj->bind_result($result);
$sobj->fetch();
$sobj->close();
return $result;
}
}
感谢。
请粘贴查询,发现错误。没有它就很难进行调试。 – 2011-02-27 04:07:49