2013-03-17 3 views
0

Я запускаю сервер wamp и создал серию веб-страниц html, данные, которые вводит пользователь, затем отправляются в базу данных SQL через PHP-скрипт. Я создал таблицу базы данных с 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

case является reserved 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

Смежные вопросы