我花了最近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我确实意识到我不应该直接在表中使用用户输入,但是我将是唯一一个访问该表的人。我正在制作这张桌子,让我的生活更轻松。
答案 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');
干杯