1

PHP と Mysqli を使用して、フォームからデータベースにデータを挿入しようとしていますが、うまくいきません! 私のデータベースには、DATE、TITLE、CONTENT、ID の 4 つのフィールドがあります。ID フィールドは自動インクリメントです。

接続を確認しましたが、問題なく動作しています。フォーム フィールドの値と作成した $blogDate 変数もエコーしましたが、それらもすべて問題ありません。

これが私の準備されたステートメントです:

if ($newBlog = $mysqli->prepare('INSERT INTO Blog VALUES ($blogDate, $_POST["bTitle"], $_POST["bContent"])')) {
  $newBlog->execute();
  $newBlog->close();
}

テーブルに値を挿入していないだけです。

4

3 に答える 3

3

引用符またはエスケープされていない文字列を含む SQL を生成しています。

データを SQL 文字列に直接挿入しないでください。プレースホルダー ( ?) を使用してから、パラメーターをバインドしてから実行してください。

$query = "INSERT INTO Blog VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("sss", $blogDate, $_POST["bTitle"], $_POST["bContent"]);
$stmt->execute();
于 2013-08-10T13:48:11.360 に答える
2

準備済みステートメントについて知っているので:

$newBlog = $mysqli->prepare('INSERT INTO Blog (`dateCol`, `titleCol`, `contentCol`) VALUES (?, ?, ?)');
$newBlog->bind_param( 'sss', $blogDate, $_POST["bTitle"], $_POST["bContent"] );
$newBlog->execute();
$newBlog->close();
于 2013-08-10T13:50:42.327 に答える
0

自動インクリメントフィールドを使用しているため、列名を指定する必要があり、値はこのコードを試してください

$query = "INSERT INTO Blog (colname_1,colname_2,colname_3) VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("sss", $blogDate, $_POST["bTitle"], $_POST["bContent"]);
$stmt->execute();
于 2013-08-10T13:55:32.813 に答える