Я проверил несколько сообщений PDO, и все они говорят, что синтаксис неверен, но даже при проверке я не могу найти его. Вот мой код:PDO по ошибке повторного обновления
$stmt = $pDatabase->prepare('INSERT INTO Agenda (index, date, shortdesc) VALUES :values ON DUPLICATE KEY UPDATE date=VALUES(date), shortdesc=VALUES(shortdesc)');
Я попытался фиксируя его с ;
в конце, или вставляя по одному. Это ошибки при подготовке, так что бы ни было :values
.
Это ошибка производства:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'index, date, shortdesc) VALUES(?, ?, ?)ON DUPLICATE KEY UPDATE date=VALUES(date)' at line 1' in /customers/f/b/e/**************/httpd.www/editagenda.php:14 Stack trace: #0 /customers/f/b/e/**************/httpd.www/editagenda.php(14): PDO->prepare('INSERT INTO Age...') #1 {main} thrown in /customers/f/b/e/**************/httpd.www/editagenda.php on line 14
, где 14 представляет собой prepare
линию.
Эта линия отлично работает в DBadmin.
Моя таблица выглядит следующим образом:
index date shortdesc longdesc boolean
10 2015-12-12 Something copyshort 1
11 2015-11-12 Somethi2ng copyshort2 0
SQL в сообщении об ошибке не совпадает с SQL, который вы опубликовали. Нет 'VALUES (?,?,?)' В '$ stmt'. – Barmar