我的表(S)结构(的MySQL /每个人都是下同)MySQL中INSERT INTO ... ON DUPLICATE KEY UPDATE的正确语法是什么?
+-------+--------------+------+------+-------------------+
| Field | Type | Null | Key | Default |
+-------+--------------+------+------+-------------------+
| id | int(11) | NO | PRI | AUTO INCREMENT |
| lesson| varchar(255) | NO | | LESSON_NAME |
| exam | char(50) | NO |UNIQUE| NO DEFAULT |
| quest | text | NO | | NO DEFAULT |
| answer| text | NO | | NO DEFAULT |
| note | text | NO | | NO DEFAULT |
+-------+--------------+------+------+-------------------+
和我'张贴一些值通过AJAX($ POST)来加入这个表 - PHP 5.0
在database.php中有一个函数来获取发布的数据,并添加到表
function update_table ($proper_table, $name, $question, $answer, $note) {
$sql = "INSERT INTO $proper_table (id, lesson, exam, quest, answer, note) VALUES ('', '', $name, $question,$answer,$note) ON DUPLICATE KEY UPDATE exam = $name, quest = $question, answer = $answer, note = $note";
$result= mysql_query($sql)or die(mysql_error());
}
$ proper_table变量采取的是另一个变量添加这个记录更正表。
(注意:原始表格字段和变量不同(土耳其语),我可以更容易理解,但是其语法与您看到的相同。)
问题:我想检查是否有记录考试领域是相同的,那么所有这些变量将用于更新此记录,否则让函数将此记录作为新记录放在适当的表中。
但是像下面
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
我'得到错误有任何编码错误?什么是解决方案?
由于现在...
我不认为这就是整个的错误消息。也可以使用准备好的语句(请参阅mysqli扩展的文档) – Vitamin 2012-02-20 20:17:18
或至少将值放在引号(')中。请提供所涉及变量的值或最终查询字符串(不含变量)。 – Basti 2012-02-20 20:20:20