Я обновляю свой 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();