PHPからデータベースが作成できません。
var_dump($_POST); exit();
で確認したところ
$stmt->bindValue(':body', $body, PDO::PARAM_STR);
ここまでは送信した値を取得できているのですが、次の行からエラーになります。
ご指導よろしくお願いいたします。
<?php // 送信確認 // var_dump($_POST); // exit(); // 項目入力のチェック // 値が存在しないor空で送信されてきた場合はNGにする if ( !isset($_POST['title']) || $_POST['title'] == '' || !isset($_POST['body']) || $_POST['body'] == '' ) { // 項目が入力されていない場合はここでエラーを出力し,以降の処理を中止する echo json_encode(["error_msg" => "no input"]); exit(); } // 呼び出し include('functions.php'); $pdo = connect_to_db(); // データ登録SQL作成 // `created_at`と`updated_at`には実行時の`sysdate()`関数を用いて実行時の日時を入力する $sql = 'INSERT INTO blog_table(id, title, body, deadline, created_at, updated_at) VALUES(NULL, :title, :body, :deadline, sysdate(), sysdate())'; // SQL準備&実行 $stmt = $pdo->prepare($sql); $stmt->bindValue(':title', $title, PDO::PARAM_STR); $stmt->bindValue(':body', $body, PDO::PARAM_STR); $status = $stmt->execute(); // データ登録処理後 if ($status == false) { // SQL実行に失敗した場合はここでエラーを出力し,以降の処理を中止する $error = $stmt->errorInfo(); echo json_encode(["error_msg" => "{$error[2]}"]); exit(); } else { // 正常にSQLが実行された場合は入力ページファイルに移動し,入力ページの処理を実行する header("Location:input.php"); exit(); }
テーブル定義とエラーメッセージの内容を追記してください。
パッと分かるのは、:deadline に対するbindValueがないことです。
・テーブル定義
名前 データ型 照合順序 属性 NULL デフォルト値 コメント その他
id int(12) いいえ なし AUTO_INCREMENT
title varchar(128) utf8mb4_general_ci いいえ なし
body varchar(1000) utf8mb4_general_ci いいえ なし
deadline int(11) いいえ なし
created_at int(11) いいえ なし
updated_at int(11) いいえ なし
・エラーメッセージ
このページは動作していません
HTTP ERROR 500
見辛くて申し訳ございません。
回答1件
あなたの回答
tips
プレビュー