1

このクエリの何が問題なのか教えていただけますか? エラーが見つからないだけです。これは私を狂わせています。

<?php
$query = "INSERT INTO atable (fortlaufend, vorname, nachname, land, email, caption1, caption2, caption3, caption4, caption5, datum) 
VALUES (NULL, 
" . mysql_real_escape_string($_POST[vorname]) . ", 
" . mysql_real_escape_string($_POST[nachname]) . ", 
" . mysql_real_escape_string($_POST[land]) . ", 
" . mysql_real_escape_string($_POST[email]) . ", 
" . mysql_real_escape_string($_POST[caption1]) . ", 
" . mysql_real_escape_string($_POST[caption2]) . ", 
" . mysql_real_escape_string($_POST[caption3]) . ", 
" . mysql_real_escape_string($_POST[caption4]) . ", 
" . mysql_real_escape_string($_POST[caption5]) . ", 
CURRENT_TIMESTAMP)";
?>

「fortlaufend」は、AUTO_INCREMENT を使用したプライマリ インデックスです。mysql_error は

無効なクエリ: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、3 行目の「名前、姓、国、電子メール、この写真を特別なものにする理由は何ですか?」の近くで使用する正しい構文を確認してください。

ありがとうございました!

4

2 に答える 2

5

整数以外の値には一重引用符が必要です。

  <?php
    $query = "INSERT INTO atable (fortlaufend, vorname, nachname, land, email, caption1, caption2, caption3, caption4, caption5, datum) 
    VALUES (NULL, 
    '" . mysql_real_escape_string($_POST[vorname]) . "', 
    '" . mysql_real_escape_string($_POST[nachname]) . "', 
    '" . mysql_real_escape_string($_POST[land]) . "', 
    '" . mysql_real_escape_string($_POST[email]) . "', 
    '" . mysql_real_escape_string($_POST[caption1]) . "', 
    '" . mysql_real_escape_string($_POST[caption2]) . "', 
    '" . mysql_real_escape_string($_POST[caption3]) . "', 
    '" . mysql_real_escape_string($_POST[caption4]) . "', 
    '" . mysql_real_escape_string($_POST[caption5]) . "', 
    CURRENT_TIMESTAMP)";
    ?>
于 2012-07-01T14:14:41.927 に答える
1

クエリで引用符を使用していません。

<?php
$query = "INSERT INTO atable (fortlaufend, vorname, nachname, land, email, caption1, caption2, caption3, caption4, caption5, datum) 
VALUES (NULL, 
'" . mysql_real_escape_string($_POST[vorname]) . "', 
'" . mysql_real_escape_string($_POST[nachname]) . "', 
'" . mysql_real_escape_string($_POST[land]) . "', 
'" . mysql_real_escape_string($_POST[email]) . "', 
'" . mysql_real_escape_string($_POST[caption1]) . "', 
'" . mysql_real_escape_string($_POST[caption2]) . "', 
'" . mysql_real_escape_string($_POST[caption3]) . "', 
'" . mysql_real_escape_string($_POST[caption4]) . "', 
'" . mysql_real_escape_string($_POST[caption5]) . "', 
CURRENT_TIMESTAMP)";
?>
于 2012-07-01T14:15:01.897 に答える