Текущая синтаксическая ошибка при подключении к версии 5.0 mysql - PullRequest
0 голосов
/ 08 марта 2011

Мне действительно трудно понять, какой синтаксис использовать. Я ОЧЕНЬ зеленый, когда дело доходит до кодирования. Я скопировал этот код с другого сайта, который работает нормально, но они подключены к версии 4.3 mysql - кто-нибудь может помочь? Это ошибка -

Ошибка: в синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать около '1, город, штат, 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 ]

2 голосов
/ 08 марта 2011

У вас есть спецслужбы в 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')";
0 голосов
/ 08 марта 2011

Это утверждение ясно говорит вам, что синтаксис 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' )";
0 голосов
/ 08 марта 2011

Избавиться от пробела в адресе 1 и вашей переменной $ adress 1 .... недопустимо (пробелы есть)

0 голосов
/ 08 марта 2011

У вас есть столбец adress 1, это недопустимое имя столбца в mysql, и он не мог бы работать на любой версии mysql.Какие столбцы есть в вашей таблице?

Кроме того, ваше второе значение пустое, поместите туда некоторое значение (или значение по умолчанию).И запятая в конце списка столбцов.Электронная почта не в том месте.

Может быть, это сработает?

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

(я не уверен насчет третьего столбца, должен ли он означать address1?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...