0

私は現在、PHPチュートリアルに従っており、次のコードを取得しています::

$sql = "insert into practice (title, synopsis, genre, release, score, poster) 
        values('{$title}','{$synopsis}','{$genre}','{$release}','{$score}','{$poster}')";

if ($result = $mysqli->query($sql)) {
    // movie successfully added
    // redirect to index.php
    header("Location: index.html");
    exit;
}
elseif ($mysqli->connect_errno) {
    // there was a database error when inserting
    printf("Insert failed: %s\n", $mysqli->error);
}
else {
    printf("Sorry this isn't working! Insert failed: %s\n", $mysqli->error);
}

現在、「申し訳ありませんが、これは機能していません...」というエラーが表示されます。mysqli エラーは単に次のように述べています。

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax 
to use near 'release, score, poster) values ('fa','f','ff','ff','ff','ff')' at line 1.

私は完全な初心者なので、構文エラーが実際に何であるかについて少し迷っています。事前に助けてくれてありがとう

4

3 に答える 3

8

releaseMySql 5.1の予約キーワードです

バッククォートでカプセル化する必要があります

$sql = "insert into practice (title, synopsis, genre, `release`, score, poster)  
        values('{$title}','{$synopsis}','{$genre}','{$release}','{$score}','{$poster}')"; 
于 2012-08-03T15:09:09.817 に答える
2

「リリース」はmysqlのキーワードのようです。

「`」でキーワードをエスケープしてみてください。

$sql = "insert into practice (title, synopsis, genre, `release`, score, poster) 
    values('{$title}','{$synopsis}','{$genre}','{$release}','{$score}','{$poster}')";
于 2012-08-03T15:09:53.980 に答える
2

構文の問題は「リリース」で始まると言われています。構文エラーのようには見えないので、おそらく予約語です。http://dev.mysql.com/doc/refman/5.5/en/reserved-words.htmlを参照してください。

于 2012-08-03T15:09:57.930 に答える