0

このPDO挿入ステートメントがMySQLに挿入されない理由はありますか?

$stmt = $dbh->prepare("INSERT INTO training courseId = :postCourse, title = :postCourseName, startDate = :postStartDate, endDate = :postEndDate");
$stmt->bindParam(':postCourse', $postCourse);
$stmt->bindParam(':postCourseName', $postCourseName);
$stmt->bindParam(':postStartDate', $postStartDate);
$stmt->bindParam(':postEndDate', $postEndDate);
$stmt->execute();

エラーは発生していません。すべてが私には正しいように見えます。

4

3 に答える 3

5

クエリは次のようになります。

INSERT INTO training (courseId, title, startDate, endDate) VALUES
(:postCourse, :postCourseName, :postStartDate, :postEndDate);

または:

INSERT INTO training 
SET courseId = :postCourse, 
    title = :postCourseName,
    startDate = :postStartDate, 
    endDate = :postEndDate

http://dev.mysql.com/doc/refman/5.5/en/insert.htmlを参照してください

次のようなエラーをチェックできるはずです。

$stmt = $dbh->prepare(...);
if (!$stmt) {
    var_dump($dbh->errorInfo());
}

または:

$stmt->execute();
var_dump($stmt->errorInfo());

または:

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
...

参照:http ://www.php.net/manual/en/pdo.error-handling.php

于 2012-08-23T22:26:16.523 に答える
4

はい、あなたは行方不明ですSET

$stmt = $dbh->prepare("INSERT INTO training SET courseId = :postCourse, title = :postCourseName, startDate = :postStartDate, endDate = :postEndDate");
于 2012-08-23T22:25:47.017 に答える
3
$stmt = $dbh->prepare("INSERT INTO training (courseId, title, startDate, endDate) VALUES (:postCourse, :postCourseName, :postStartDate, :postEndDate");

INSERT構文を確認してくださいhttp://dev.mysql.com/doc/refman/5.1/en/insert.html

于 2012-08-23T22:26:49.767 に答える