Я обновляю свой PHP для использования mysqli::
вместо mysql_*
и у меня возникла проблема с операторами INSERT
. У меня есть следующее утверждение:
$stmt = $link->prepare("INSERT INTO `table` (`a`, `b`, `c`) VALUES(?, ?, ?)"); $stmt->bind_param("sss", $a, $b, "0"); $stmt->execute();
Я проверил $stmt
и это правильный объект mysqli_stmt
. Он подготовлен правильно, но по какой-то причине инструкция не будет выполняться. Я просто получаю 500 ошибок с моего сервера.
Что мне не хватает?
редактировать
Я решил, что проблема исходит из метода bind_param
.
Изменить 2
Хорошо, поэтому ошибка PHP дает мне следующее:
Неустранимая ошибка: невозможно передать параметр 4 по ссылке …
Это указывает на строку bind_param
Вы не можете передать константу bind_param. Сначала поставьте значение в переменной:
$status = "0"; $stmt->bind_param("sss", $oid, $cid, $status); $stmt->execute();