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