PHP SQL插入语句返回语法错误,不确定它可能是什么


PHP SQL insert statement returning a syntax error, not sure what it could be

我目前正在学习一个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.

我是一个完全的新手,所以我有点不知道语法错误可能是什么。感谢您提前提供

release是MySql 5.1 中的保留关键字

你需要用回溯封装

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

"release"似乎是mysql的一个关键词。

试着用"`"来转义关键字。

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

它说sytax问题从"发布"开始。由于它看起来不像是语法错误,所以它可能是一个保留字。看见http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html.