Добавьте обратную галочку, то есть "` "правильно. Напишите свое имя getTable и имя столбца между обратными чертами.

от вопрос уже есть ответ здесь:

Синтаксическая ошибка из-за использования зарезервированного слова в качестве имени таблицы или столбца в MySQL 1 ответ

Я просмотрел все другие сообщения StackOverflow (и Google) с той же проблемой, но ни одна из них, похоже, не решала мою проблему.

Я использую PDO и PHP.

Мой код:

$vals = array(
   ':from'    => $email,
   ':to'      => $recipient,
   ':name'    => $name,
   ':subject' => $subject,
   ':message' = >$message
);
print_r($vals);
try {
   $pdo = new PDOConfig();
   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $sql = "SELECT * FROM messages WHERE `message` LIKE :message";
   $q = $pdo->prepare($sql);
   $q->execute(array(':message' => $vals[':message']));
   $resp = $q->fetchAll();

   foreach ($resp as $row) {
      throw new Exception('Please do not post the same message twice!');
   }

   $sql = "INSERT INTO messages (from, to, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
   $q = $pdo->prepare($sql);
   $q->execute($vals);
} 
catch(PDOException $e) {
   echo $e->getMessage();
}

и первый print_r дает

Array ( [:from]    => [email protected] 
        [:to]      => [email protected] 
        [:name]    => abc 
        [:subject] => abc 
        [:message] => abc )

что ожидается (никто не нулевой)

но выводит ошибку

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064 В синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с «от, до, имя, тема, сообщение» ЗНАЧЕНИЯ («[email protected]», «[email protected]» в строке 1

Не знаю, как это исправить. есть идеи?

Ответы на вопрос(0)

Ваш ответ на вопрос