-2

我的代码出现此错误“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法以在 'condition,location,authorname) VALUES ('','' ,'','','','','','')' 在第 1 行”。我是新手,我想知道是否有人可以帮助我找出问题所在?代码:

<?PHP
include_once('header.php');
include_once('create.php');

$isbn=$_POST['isbn'];
$title=$_POST['title'];
$publisher=$_POST['publisher'];
$genre=$_POST['genre'];
$availability=$_POST['availability'];
$condition=$_POST['condition'];
$location=$_POST['location'];
$authorname=$_POST['authorname'];

$queryuser=mysql_query("SELECT * FROM book 
    WHERE Title='$title' ");

$checktitle=mysql_num_rows($queryuser);

if($checktitle != 0){
echo "Sorry ".$title." is already added."; 
}

else {

$insert_book=mysql_query("INSERT INTO book (isbn,title,publisher,genre,availability,condition,location,authorname) VALUES ('$isbn','$title','$publisher','$genre','$availability','$condition','$location','$authorname')");

if($insert_book)
{ echo "<b>Addition successful.</b><br><b>You Added: </b>".$title."<br><b>By:  
</b>".$authorname ; }
else{
echo "error in registration".mysql_error(); 
}
}

提前感谢您的帮助。

4

3 回答 3

1

“条件”是 SQL 中的关键字。

尝试这个:

INSERT INTO book (`isbn`,`title`,`publisher`,`genre`,`availability`,`condition`,`location`,`authorname`) VALUES ('$isbn','$title','$出版商','$genre','$availability','$condition','$location','$authorname')
于 2013-09-04T14:56:26.053 回答
0

条件不允许作为列名。尝试将该 mysql 列重命名为其他名称。

于 2013-09-04T14:55:44.877 回答
0

这可能是由您插入的任何具有单引号 ( ' ) 的变量引起的。要解决此问题,您需要针对 SQL 注入清理从用户输入中获取的变量。您还需要先验证表单。请阅读如何防止 SQL 注入?

另请注意,所有mysql_*函数现在都已弃用。请考虑使用 PDO 或 Mysqli

于 2013-09-04T14:56:19.320 回答