我有这个php代码:
$db = new mysql;
$new_bad = $_POST['new_bad'];
$new_replace = $_POST['new_replace'];
if ($_POST['submit']) {
if ($new_bad && $new_replace) {
$db->query("SELECT * FROM BAD_WORDS WHERE BAD_WORD='".$new_bad."'");
if ($db->CNrows() == 0) {
$db->query("
INSERT INTO BAD_WORDS(BAD_WORD,REPLACE)
VALUE('".$new_bad."','".$new_replace."')
");
$err = "added succesfully..";
$tmp->assign('msg', 'true');
} else {
$err = "the word is in table ..!!";
$tmp->assign('msg', 'false');
}
} else {
$err = "you must fill all feilds ..!!";
$tmp->assign('msg', 'false');
}
}
但是当我测试它时,我发现了这个错误:
您的 SQL 语法有误;检查相应的手册到您的 MySQL 服务器版本,以便在"替换"附近使用正确的语法)第 1 行的值("坏 1"、"替换 1")'
怎么了??
$tmp->
= 它是聪明的模板类,工作没有问题
BAD_WORDS
表 = ID,BAD_WORD,REPLACE
替换是 MySQL 中的一个保留字。尝试在它周围加上引号(这些 ')。您还需要值中的 S
这样:
INSERT INTO `BAD_WORDS` (`BAD_WORD`,`REPLACE`) VALUES [...]
您可以在此处查看MySQL查询中的所有保留字:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
编辑:
$db->query("INSERT INTO `BAD_WORDS` (`BAD_WORD`,`REPLACE`) VALUES ('$new_bad','$new_replace')");
在您的表结构中,我看到
ID,BAD_WORD,REPLACE
id 字段也需要一个值,因此替换:
$db->query("INSERT INTO BAD_WORDS(BAD_WORD,REPLACE)VALUE('".$new_bad."','".$new_replace."')");
跟:
$db->query("INSERT INTO BAD_WORDS(ID,BAD_WORD,REPLACE)VALUE('','".$new_bad."','".$new_replace."')");
如果 id 是自动递增的,否则给 id 一个值。