我真的很难理解要使用的语法。在编码时我非常环保。我从另一个工作正常的网站复制了这个代码,但他们连接到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());
}
答案 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' )";