0

コード

if(isset($_POST['post_comment_submit'])){

    //Get all values
    $uid = $_SESSION['user']['id'];
    $pid = $_POST['pid'];
    $rid = $_POST['rid'];
    $cmt = $_POST['post_reply_content'];
    $date = date('c');

    //Check that comment is not empty
    if(empty($cmt)){
        header('location: ../post.php?id='.$pid.'&error=incomplete');
        exit;
    }

    //Connect to database
    include "../inc/connect.php";

    //Prepare statement
    $stmt = $dbh->prepare("INSERT INTO `post_comments` (`user_id`,`post_id`,`reply_id`,`comment`,`date`) VALUES (:uid, :pid, :rid :cmt, :date)");

    //Bind values
    $stmt->bindParam(":uid",    $uid);
    $stmt->bindParam(":pid",    $pid);
    $stmt->bindParam(":rid",    $rid);
    $stmt->bindParam(":cmt",    $cmt);
    $stmt->bindParam(":date",   $date);

    //Execute
    if($stmt->execute()){
        header('Location: ../post.php?id='.$pid);
    } else {
        print_r("Error");
        echo "<br>";
        print_r($stmt);
        echo "<br>";
        print_r($_POST);
        echo "<br>";
    }
}

出力

Error
PDOStatement Object ( [queryString] => INSERT INTO `post_comments` (`user_id`,`post_id`,`reply_id`,`comment`,`date`) VALUES (:uid, :pid, :rid :cmt, :date) ) 
Array ( [pid] => 8 [rid] => 1 [post_reply_content] => Test Comment Reply [post_comment_submit] => Add comment )

説明

これは、PHPフォームからのデータを処理するページです。ユーザーのID、投稿のID、返信先のコメントのID、コメントの内容、コメントの日時を入力して、ページのコメントへの返信を処理する機能です。

質問

ご覧のとおり、PHPファイルはすべての関連$_POSTデータを受信して​​いますが、何らかの理由で SQLINSERTコマンドが処理されていません。

4

1 に答える 1

3

:ridと の間にカンマがありません:cmt

$stmt = $dbh->prepare("INSERT INTO `post_comments` (`user_id`,`post_id`,`reply_id`,`comment`,`date`) VALUES (:uid, :pid, :rid, :cmt, :date)");
于 2013-08-09T15:31:16.160 に答える