我檢查了多個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不同。 '$ stmt'中沒有'VALUES(?,?,?)'。 – Barmar