连接到版本5.0 mysql时当前语法错误

时间:2011-03-08 20:12:49

标签: php mysql syntax

我真的很难理解要使用的语法。在编码时我非常环保。我从另一个工作正常的网站复制了这个代码,但他们连接到4.3版本的mysql-任何人都可以帮忙吗?这是错误 -

  

错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在“1,city,state,zip,”附近使用正确的语法VALUES('','1','','','','')'在第1行

Here is my code:

mysql_select_db("membership70", $con);  

$name=mysql_real_escape_string($_POST['Name']); 
$address1=mysql_real_escape_string($_POST['Address1']); 
$city=mysql_real_escape_string($_POST['city']); 
$state=mysql_real_escape_string($_POST['state']); 
$zip=mysql_real_escape_string($_POST['zip']);
$email=mysql_real_escape_string($_POST['email']);

$sql="INSERT INTO Members (name, email, adress 1, city, state, zip, ) VALUES ('$name', , '$address 1', '$city', '$state', '$zip','$email' )"; 

if (!mysql_query($sql,$con)) {
  die('Error: ' . mysql_error());
}

4 个答案:

答案 0 :(得分:2)

address [space] 1两个地方都有空格。

$sql="INSERT INTO Members (name, email, adress 1, city, state, zip, ) VALUES ('$name', , '$address 1', '$city', '$state', '$zip','$email' )";

zip之后你还有一个额外的冒号,并且值的顺序与你给列名的顺序不一致。尝试:

$sql="INSERT INTO Members (name, email, adress1, city, state, zip) VALUES ('$name', '$email', '$address1', '$city', '$state', '$zip')";

答案 1 :(得分:0)

你有一个列adress 1,它不是mysql中的有效列名,也不能用于任何mysql版本。你的桌子有哪些栏目?

此外,您的第二个值为空,在那里放置一些值(或默认值)。列列表末尾有一个逗号。在错误的地方发送电子邮件。

也许这会起作用?

$sql = "INSERT INTO Members (name, email, adress1, city, state, zip) ".
       "VALUES ('$name', '$email', '$address1', '$city', '$state', '$zip')"; 

(我不确定第三栏,它是否拼写address1?)

答案 2 :(得分:0)

删除地址1中的空格和变量$ address 1 ....不允许(空格)

答案 3 :(得分:0)

该声明清楚地告诉您SQL语法已被破坏。仔细查看$ sql变量中的语句。回应它以正确调试它。

$sql = "INSERT INTO .....";
echo $sql; die();

首先,不应该有列地址和相应的php变量都没有空白。你应该对列的顺序进行排序。电子邮件是声明第二个,所以不要把它的值放在最后。

所以,而不是......

$sql="INSERT INTO Members (name, email, adress 1, city, state, zip, ) VALUES ('$name', , '$address 1', '$city', '$state', '$zip','$email' )";

...尝试...

$sql="INSERT INTO Members (name, email, adress1, city, state, zip) VALUES ('$name', '$email', '$address1', '$city', '$state', '$zip' )";