2013-03-17 2 views
0

나는 wamp 서버를 실행하고 사용자가 입력하는 데이터를 PHP 스크립트를 통해 SQL 데이터베이스에 제출하는 일련의 html 웹 페이지를 만들었습니다. Id. set to INT auto increment Crime. and Suspect. set as VARCHAR(40)으로 데이터베이스 테이블을 만들었습니다. 나는 데이터베이스에 연결할 수 있지만 내가 삽입하려고 지금 때 오류 얻을 :PHP 스크립트, SQL 삽입 오류

'Problem with insert: 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 'case (Id, Case, Suspect) VALUES('NULL', 'test', 'test12')' at line 1'

그래서 나는 그러나 그것을 고칠 수의 삽입 기능에 문제가 알을!

<?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); 
?> 

답변

2

casereserved keyword입니다. 테이블을 할거야라는 이름 columnj 경우 case 당신은 진드기에 넣어해야합니다 또한

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에 대해 자세히 알아보고 PDO 또는 MySQLi - this article을 사용하면 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택하면 here is a good tutorial.

+0

지난 한 달 동안 서클에서 고칠 수 있도록 도움을 주셔서 감사합니다. 제안에 대한 PDO 감사를 보았습니다! – James