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 構文にエラーがあります。1 行目の '1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」

$comment_option 変数には、選択されているラジオ ボタンに応じて値 1 または 0 が含まれるため、このエラーはこの変数を参照している可能性がありますが、この SQL エラーは、$comment_option の値が 1 であっても 0 であっても同じです。

「接続成功!」と表示されます。このエラーの前に、投稿が実際に送信されたにもかかわらず、「投稿が送信されました」と表示されません。理由はありますか?

この問題で私を助けるだけでなく、誰かがivが書いたものを改善するための一般的なヒントを教えてくれたらとても感謝しています. 私は初心者なので、ここで改善できることがいくつかあると確信しています!

どうもありがとう!

4

3 に答える 3

0

あなたの質問に答えていることは知っていますが、クエリで連結する前に POST データをサニタイズすることを真剣にお勧めします。

于 2013-06-23T20:16:54.287 に答える
0

問題はここにあります:

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

ステートメントにある別のmysqli_query結果を渡しています。$submitpost_querymysqli_queryif

于 2013-06-23T19:55:52.253 に答える