PHP INSERT查询语法

时间:2014-01-29 19:06:14

标签: php mysqli sql-insert

我正在网站上为我的朋友和我制作DnD角色表。第一部分完成,数据正确发布但不会上传到服务器。我一直在研究这个问题,但仍然无法弄明白。所有的东西拼写与服务器相同,服务器连接。我通过mysqli_error()得到的错误是:

  

您的SQL语法有错误;查看与MySQL服务器对应的手册,以获得正确的语法,以便在第1行使用near'character(id,username,characterName,class,level,race,alignment,deity,si')

我在问题出现前设置了echo,以确保在上传之前一切正常,一切正常,但不会上传。 $bd是连接并且正在工作,因为我将其与其他页面一起使用。

这是我的代码:

echo ($id . "<br />");
echo ($username . "<br />");
echo ($characterName . "<br />");
echo ($class . "<br />");
echo ($level . "<br />");
echo ($race . "<br />");
echo ($alignment . "<br />");
echo ($deity . "<br />");
echo ($size . "<br />");
echo ($age . "<br />");
echo ($gender . "<br />");
echo ($height . "<br />");
echo ($weight . "<br />");
echo ($eyes . "<br />");
echo ($hair . "<br />");
echo ($skin . "<br />");
echo ($mysql_hostname . "<br />");
echo ($mysql_user . "<br />");
echo ($mysql_password . "<br />");
echo ($mysql_database . "<br />");

if(isset($_POST['nc1']))

{
$query    =    "INSERT INTO characters (id, username, characterName, class, level, race,  alignment, deity, size, age, gender, height, weight, eyes, hair, skin) VALUES ('$id', '$username', '$characterName', '$class', '$level', '$race', '$alignment', '$deity', '$size',     '$age', '$gender', '$height', '$weight', '$eyes', '$hair', '$skin')";
mysqli_query($bd,$query) or die('Error: ' . mysqli_error($bd));
//header('location:success.php');//Redirect To Success Page
echo ("success");
}

2 个答案:

答案 0 :(得分:3)

character是mysql中的reserved word。如果您将此作为表名使用,则必须引用:

$query = "INSERT INTO `character` ( `id`, `username`, ....

作为一种良好做法,为了防止此类错误,请始终引用表名或列名。

答案 1 :(得分:0)

here中说,您的表名character是保留字,因此您需要更改它,否则您的代码将无效。