恼人的PHP错误

时间:2014-04-08 08:51:58

标签: php mysql sql

我花了最近6个小时在网上搜索并查看我的代码,但我仍然收到此错误消息。

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“$ register”附近使用正确的语法

这是我的代码(我相信问题所在的部分):

$month = $_POST['month'];
$day = $_POST['day'];
$content = $_POST['content'];
$title = $_POST['titlename'];
$author = $_POST['author'];

$register = mysql_query("INSERT INTO posts (month, day, author, content, title) VALUES ('$month', '$day', '$author', '$content', '$title')");
    mysql_query('$register');
    echo mysql_error();

我有一个名为“posts”的表,拼写在所有内容上都是正确的,所有引号都有配对。我完全难过了。真正奇怪的部分是,我把它与我之前实际工作的代码进行了比较,确实没有区别。

PS我确实意识到我不应该直接在表中使用用户输入,但是我将是唯一一个访问该表的人。我正在制作这张桌子,让我的生活更轻松。

3 个答案:

答案 0 :(得分:5)

删除引号..

 mysql_query($register);

<强>更新

你正在运行两次sql查询。删除mysql_query('$register');

答案 1 :(得分:0)

尝试:

$month = $_POST['month'];
$day = $_POST['day'];
$content = $_POST['content'];
$title = $_POST['titlename'];
$author = $_POST['author'];

$register = "INSERT INTO posts (month, day, author, content, title) VALUES ('$month', '$day', '$author', '$content', '$title')";
    mysql_query($register);
    echo mysql_error();

你最好在查询之前做一些mysql_real_escape_string(),如:

 $author = mysql_real_escape_string($author);

如果sting包含单引号

,则避免SQL注入或失败

答案 2 :(得分:-1)

另外,mysql_query有些不好,将来可能不支持。请改用mysqli_query

    mysqli_query("INSERT INTO posts (month, day, author, content, title) VALUES ('$month', '$day', '$author', '$content', '$title')");

代替。

然后删除

    mysql_query('$register');

干杯