Неустранимая ошибка: Неперехваченное исключение PDOException: SQLSTATE[42000]: синтаксическая ошибка или нарушение доступа: 1064 У вас ошибка в синтаксисе SQL

#php #mysql

#php #mysql

Вопрос:

Привет всем, я пытаюсь обновить логическое значение в своей таблице, поэтому у меня была ошибка PDOException, и я не знаю, почему :

 Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
 

Моя строка кода sql такова :

 public function updateSignal(Comments $comment)
{
    $req = 'UPDATE Comments SET signal = TRUE WHERE idComments = :comment';
    $result = $this->getBdd()->prepare($req);
    $result->bindValue(':comment', $comment->getIdComments());

    return $result->execute();
}
 

Я не нахожу, где мой синтаксис ошибки, пожалуйста, нужна помощь, спасибо

Комментарии:

1. НЕ сокращайте сообщение об ошибке.

2. Какой тип возвращаемого $comment->getIdComments() символа «s» в комментариях заставляет его звучать как множественное число, поэтому он может возвращать массив. Также можете ли вы подтвердить, что $this->getBdd() используется класс PDO, а не библиотека?

3. Попробуйте изменить значение true на 1

Ответ №1:

SIGNAL это зарезервированное слово. Лучше избегать этого, но вы можете использовать его, если обернете его в обратные ссылки.

 $req = 'UPDATE Comments SET `signal` = TRUE WHERE idComments = :comment';
 

(зарезервированные слова MySQL)

Комментарии:

1. @AlprodGrm Добро пожаловать. Пожалуйста, не забудьте принять ответ, нажав на галочку