我的表单中的 MySQL 插入错误


mysql insert error in my form

我有这个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 一个值。