Php SQL语法错误
我对PHP和SQL都相当陌生,但我想要的是将输入表单的详细信息插入到数据库中 我写的代码有效,数据被提交到数据库中,但有几件事不对 首先是代码Php SQL语法错误,php,sql,insert,syntax-error,Php,Sql,Insert,Syntax Error,我对PHP和SQL都相当陌生,但我想要的是将输入表单的详细信息插入到数据库中 我写的代码有效,数据被提交到数据库中,但有几件事不对 首先是代码 <?php include "credentials.php"; function insert_post($cnhost,$cnusername,$cnpassword,$cndatabase,$titlein,$contentin,$comment_optionin) { $connect = mysqli_connect($
<?php
include "credentials.php";
function insert_post($cnhost,$cnusername,$cnpassword,$cndatabase,$titlein,$contentin,$comment_optionin) {
$connect = mysqli_connect($cnhost,$cnusername,$cnpassword,$cndatabase);
if (mysqli_connect_errno($connect))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}else{
echo "Connection Success! <br>";
$submitpost_query = mysqli_query($connect,"INSERT INTO blog_posts (title,content,comment_option) VALUES ('".$titlein."','".$contentin."','".$comment_optionin."')");
if (!mysqli_query($connect,$submitpost_query))
{
die('Error: ' . mysqli_error($connect));
}else{
echo "Post submitted.";
}
mysqli_close($connect);
}
}
$title = $_POST["title"];
$content = $_POST["content"];
$comment_option = $_POST["comment_option"];
insert_post($host,$username,$password,$database,$title,$content,$comment_option);
?>
虽然数据按我所希望的方式提交到数据库中,但我得到以下错误:
“错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“1”附近使用的正确语法”
$comment_选项变量包含值1或0,具体取决于选择的单选按钮,因此此错误可能引用此变量,但无论$comment_选项的值是1还是0,此SQL错误都是相同的
在这个错误之前,我确实看到了“连接成功!”,但是没有看到“Post submitted”,即使这个帖子实际上已经提交了。你知道为什么吗
除了帮助我解决这个问题外,如果有人能给我一些改进iv写作的一般性建议,我将非常感激。我是个笨蛋,所以我相信这里有一些地方可以改进
非常感谢 问题在于:
if(!mysqli\u query($connect,$submitpost\u query))
您正在将一个
mysqli_查询
结果$submitpost_查询
传递给另一个mysqli_查询
,该查询位于if
语句中。问题在于以下代码块
如果(!mysqli_query($connect,$submitpost_query))
相反,它应该紧随其后
如果(!$submitpost\u查询)
原因:您正在通过mysql_query函数再次执行return object,导致警告、无效资源、,由于此函数仅包含有效的sql查询或连接对象,我知道您的问题已得到回答,但我郑重建议您在将POST数据连接到查询之前对其进行清理。请打印整个查询<代码>回声“插入博客文章(标题[…]好的,谢谢您的快速响应。我删除了if语句,错误消失了!谢谢!我用它来验证SQL语句是否有效,数据是否插入到数据库中。您建议如何验证这一点?对,
$submitpost\u query
是查询的结果,您应该测试$submitpost_查询
为false或true,如if(!$submitpost_查询)
很抱歉,在我提交我的评论之前,我没有看到这个评论。好的,谢谢你,我会尝试一下!我这样做是因为他们在页面底部的最后一段代码中使用了类似于W3schools的if语句。请问这与我的有什么不同?你能给我更多的信息吗我会研究一下你说的话,但如果你能解释一下我这里的代码,关于如何清理用户输入以及为什么要这样做,我将不胜感激