2014-09-26 74 views
0

我一直在检查自己的语法,但我似乎无法看到错误。我对这一切都比较陌生,希望可以提供帮助。我得到的错误是使用PHP将数据输入到MySQL数据库时遇到困难

“您的SQL语法错误;请查看与您的MySQL服务器版本相对应的手册,以找到在''ID','Name','选项”, '两岸')VALUES(NULL, '丹尼斯', '鸡', '泥Potat' 第1" 行

我的代码如下:

<?php 
include 'connect.php'; 

$name = $_POST['inputName']; 
$opt = $_POST['inputOption']; 
$side = $_POST['inputSides']; 

if(!$_POST['Submit']) { 
    echo "Please fill out the form."; 
    header('Location: index.php'); 
} else { 
    mysql_query("INSERT INTO people ('ID','Name','Option','Sides') 
       VALUES(NULL,'$name','$opt','$side')") or die(mysql_error()); 
    echo "User has been added."; 
    header('Location: index.php'); 
    } 
?> 

回答

1

您使用的是错误identifiers为您的列:

('ID','Name','Option','Sides') 

删除引号或用反引号将它们包装起来。

(`ID`,`Name`,`Option`,`Sides`) 

另外,您现在的代码是SQL injection
使用mysqli with prepared statementsPDO with prepared statements,他们更安全

另一件事;如果你想输入撇号,请使用stripslashes(),包括mysql_real_escape_string()。这个场合可能会很好地呈现出来; 了解

  • 否则,SQL会抛出另一个错误。
+1

非常感谢。我甚至没有意识到。现在一切都完美无瑕。 – 2014-09-26 02:06:32

+0

@JohnMoran不客气John。 – 2014-09-26 02:06:47

+0

@JohnMoran你可以接受我的答案并将其标记为已解决,这里是如何** http://meta.stackexchange.com/a/5235/**并欢迎来到Stack。 – 2014-09-26 10:25:04

相关问题