Хорошо, поэтому я пытаюсь обновить запись в блоге, и я получаю вызов функции-члена bind_param () для не-объекта при попытке запустить скрипт. Я провел обширные исследования, чтобы понять, могу ли я сам это исправить, но я должен что-то упустить.
<?php $stmt = $mysqli->prepare("UPDATE blogentries SET headline = ?, image = ?, caption = ?, article = ? WHERE id = ?"); $stmt->bind_param('ssssi', $_POST['headline'], $_POST['image'], $_POST['caption'], $_POST['article'], $_POST['id']); $stmt->execute(); $stmt->close(); ?>
Заранее спасибо,
Остен
Обновление: вот соединение db
Я добавил дополнительное $ mysqli соединение для целей отладки, и ошибка возникает даже без него.
$stmt
, вероятно, false
.
if ($stmt = $mysqli->prepare(...)) { $stmt->bind_param(...); ... } else { printf("Errormessage: %s\n", $mysqli->error); }
Я решил это путем проверки запросов вручную. Оказалось, что нужно помещать каждое имя поля между обратными тиками и удалять любые кавычки с параметрами, помеченными вопросительными знаками внутри запроса.
Если все подключения к базе данных верны, попробуйте найти синтаксис в запросе. Для меня я выполнял соединение и не указывал «TABLENAME» в поле where where, для которого обе таблицы имеют столбец.