Я пытался заставить это работать большую часть дня безрезультатно.
По сути, я пытаюсь 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 () внутри цикла, поэтому он нене соответствует числу параметров, указанных в операторе подготовки.
Если это правильно, как мне исправить это?
Извлечение кода (строка 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;
}
}
Спасибо.