PHP脚本,SQL插入错误

时间:2013-03-17 17:47:50

标签: php mysql

我正在运行一个wamp服务器并创建了一系列html网页,然后用户输入的数据将通过PHP脚本提交给SQL数据库。我用Id. set to INT auto increment Crime. and Suspect. set as VARCHAR(40)创建了一个数据库表。我可以连接到数据库,但现在当我尝试插入时,我得到错误:

  

'插入问题:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''(Id,Case,Suspect)VALUES('NULL','test','test12')附近使用正确的语法

所以我知道它的插入功能有问题,但无法修复它!

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'fid';

$case = (isset($_POST['case'])? $_POST['case']:"None");
$suspect= (isset($_POST['suspect'])? $_POST['suspect']:"None");

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$conn)
die('Could not connect: ' . mysql_error());
mysql_select_db($db);
mysql_query("INSERT INTO case 
(Id, Case, Suspect) VALUES('NULL', '$case', '$suspect') ") 
or die(' Problem with insert: ' . mysql_error());  
echo 'Connected successfully';
mysql_close($conn);
?>

1 个答案:

答案 0 :(得分:2)

casereserved keyword。如果你要有一个名为case的表和columnj,你需要把它放在刻度线中:

INSERT INTO `case` (Id, `Case`, Suspect) VALUES('NULL', '$case', '$suspect')

另外, Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial