将数据插入mysql数据库时出错

时间:2013-07-22 10:52:57

标签: php mysql database insert syntax-error

尝试将数据插入数据库时​​出现此错误 您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'add(price,catID,subCatID,title,description)附近使用正确的语法VALUES('1500','1','1','aaa''在线1

这是我的代码。你能帮我解决这个问题。

require "dbConnect.php";
dbConnect();

$category     = mysql_real_escape_string($_POST['catID']);
$sub_category = mysql_real_escape_string($_POST['subCatID']);
$title        = mysql_real_escape_string($_POST['title']);
$description  = mysql_real_escape_string($_POST['description']);
$price        = mysql_real_escape_string($_POST['price']);

我在此处已包含相关代码

$insert_data = mysql_query("INSERT INTO add (price, catID, subCatID, title, description) VALUES ('$price', '$category', '$sub_category', '$title', '$description')");
            if($insert_data === FALSE)
            {
                die(mysql_error());
            }

1 个答案:

答案 0 :(得分:0)

ADDMySQL reserved keyword,如果将其用作表名或列名,则必须使用反引号引用。如果您有机会更改架构,建议使用保留字,因为您将来可能会再次遇到此问题,未来的开发人员也将会遇到此问题。

$insert_data = mysql_query("INSERT INTO `add` (price, catID, subCatID, title, description) VALUES ('$price', '$category', '$sub_category', '$title', '$description')");
//-------------------------------------^^^^^^^

正如您可能已经看到的那样,mysql_*()扩展名has been deprecated in PHP 5.5,最终会被移除。不要继续用它编写新代码,建议在PDO或MySQLi中开始学习预处理语句。