0

我对 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_option 变量包含值 1 或 0,具体取决于选择了哪个单选按钮,因此此错误可能是指此变量,但无论 $comment_option 的值为 1 还是 0,此 SQL 错误都是相同的。

我确实看到“连接成功!” 在此错误之前,但即使实际提交了帖子,也看不到“提交的帖子”。任何想法为什么?

除了帮助我解决这个问题之外,如果有人能给我一些一般性的建议来改进 iv 所写的内容,我将非常感激。我是菜鸟,所以我确定这里有一些可以改进的地方!

非常感谢!

4

3 回答 3

0

问题在这里:

if (!mysqli_query($connect,$submitpost_query))

您正在将一个mysqli_query结果传递给语句中的$submitpost_query另一个结果。mysqli_queryif

于 2013-06-23T19:55:52.253 回答
0

问题在于下面的代码块 if (!mysqli_query($connect,$submitpost_query)) 它应该跟随 if (!$submitpost_query)

原因:您正在通过导致警告的 mysql_queri 函数再次执行返回对象,无效资源,因为此函数仅排除有效的 sql 查询或连接对象

于 2013-06-23T20:06:14.593 回答
0

我知道您的问题已得到解答,但我强烈建议您在将 POST 数据连接到查询之前对其进行清理。

于 2013-06-23T20:16:54.287 回答