Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL语法错误_Php_Sql_Insert_Syntax Error - Fatal编程技术网

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和SQL都相当陌生,但我想要的是将输入表单的详细信息插入到数据库中

我写的代码有效,数据被提交到数据库中,但有几件事不对

首先是代码

<?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语句。请问这与我的有什么不同?你能给我更多的信息吗我会研究一下你说的话,但如果你能解释一下我这里的代码,关于如何清理用户输入以及为什么要这样做,我将不胜感激