4

テーブルにデータを挿入しようとしています: ゴールデンブック。すべて問題ありません。エラーはありません。回答は良好ですが、テーブルにデータが挿入されていません。

このコードの何が問題なのかわかりません。助けてもらえますか?

ゴールデンブック.jsでの私のajaxリクエスト

function insert_messages(auteur_message,message){
$.ajax({    

    type : "POST",
    cache: false,  
    url : "insert-messages.php",
    data:{
        auteur_message:auteur_message,
        message:message
    },
    success: function() {   
    },
    error : function() {//en cas de problème de requete AJAX
        alert("Sorry, The requested property could not be found.");//affichage d'un mesage d'erreur
    }
});
} 

挿入-messages.php

<?php

$auteur_message = $_POST['auteur_message'];
$message = $_POST['message'];
try {
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=photo', 'root', '');
} catch (Exception $e) {
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : ' . $e->getMessage());
}

$req = $bdd->prepare('INSERT INTO photo.golden_book (auteur-message , message) VALUES (:auteur , :message)'); 
$req->execute(array(
'auteur' => $auteur_message,
'message' => $message));
?>

お時間を割いてご協力いただき、ありがとうございました。

4

1 に答える 1

4

auteur-messageは無効なフィールド名です。MySQL はそれを として解釈しますauteur MINUS messagehttp://dev.mysql.com/doc/refman/5.0/en/identifiers.htmlを参照してください。まだ存在しないフィールドで計算を行うことも意味がありません。まだ挿入されていないものを減算することはできません。

バッククォートで引用してみることができます:

... .gold_book(`auteur-message`, ...

しかし実際には、フィールドの名前を変更する必要があります。エスケープはハックです。

于 2012-06-27T11:13:43.393 に答える