Так вот кодоблок:PHP - Подготовленные утверждения ошибки, что не так?
$query = "UPDATE users SET ?=? WHERE ?=?";
$type = "s";
$type .= substr(gettype($valname), 0, 1);
$type .= 'i';
if ($smtp = $this->conn->prepare($query))
{
$smtp->bind_param($type, $colname, $valname, 'id', 40);
$smtp->execute();
$smtp->close();
}else
{
return $this->conn->error;
}
По какой-то причине отказывается связывать параметры, и это дает мне эту ошибку: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с?? =? ГДЕ? =? ' в строке 1
Если я добавить кавычку (`) или singlequotes (') вокруг questionmarks я получаю эту ошибку вместо:
Неизвестный столбец"? in 'where clause'
Любые идеи, что пошло не так? Я сижу здесь часами, играя с ним, бог, это расстраивает !!
Спасибо!
Ahh, хорошо. Возможно, вы правы, но теперь я получил еще одну ошибку: Неустранимая ошибка: невозможно передать параметр 3 по ссылке в blablbla ...., запрос выглядит следующим образом: «UPDATE users SET $ colname =? WHERE id =?», Выглядит хорошо? Я также удалил имена столбцов из функции bind_param: ($ type, $ valname, 40). – qwerty
Я забыл сказать, что я также исправил параметр $ type. Все еще не работает ... – qwerty
Получил! Я переместил идентификатор в отдельную строку, а затем связал строку в функции. Кажется, работает! :) – qwerty