带有html复选框值的SQL语法错误

时间:2014-12-16 10:08:34

标签: php mysql sql

当然这是一个非常愚蠢的问题,但我找不到错误。

从表单中我得到一个复选框(0或1)的值,但查询会生成错误。 "您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#39;检查附近使用正确的语法"

<form action="processCategory.php?action=add" method="post" enctype="multipart/form-data" name="frmCategory" id="frmCategory">
  <input type="hidden" name="check" value="0" />
  <input type="checkbox" name="check" value="1" />
</form>

PHP

 $checkboxValue = (isset($_POST['check'])) ? intval($_POST['check']) : 0; // returns 0 or 1


$sql   = "INSERT INTO tbl_category (cat_parent_id, cat_name, cat_description, check) 
          VALUES ($parentId, '$name', '$description', $checkboxValue)";
$result = dbQuery($sql) or die('Cannot add category' . mysql_error());

mysql字段:检查

`check` tinyint(1) NOT NULL

2 个答案:

答案 0 :(得分:10)

check是一个保留字,您在查询中将其用作列之一。

List of all reserved words

你需要使用反引号`来逃避MySQL中的保留字:

INSERT INTO tbl_category (cat_parent_id, cat_name, cat_description, `check`) 

答案 1 :(得分:-1)

变化:

$sql   = "INSERT INTO tbl_category (cat_parent_id, cat_name, cat_description, check) 
      VALUES ($parentId, '$name', '$description', $checkboxValue)";

为:

$sql   = "INSERT INTO tbl_category (cat_parent_id, cat_name, cat_description, check) 
      VALUES ($parentId, $name, $description, $checkboxValue)";