【发布时间】:2012-02-20 20:14:52
【问题描述】:
我的表结构(MySQL / 每个都与下面相同)
+-------+--------------+------+------+-------------------+
| 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 扩展的文档)
-
或至少将值放在引号 (') 中。请提供所涉及变量的值或最终查询字符串(不带变量)。
标签: php mysql on-duplicate-key