2015-05-07 3 views
1

im получаю следующую ошибку с моим запросом из PHP:Ошибка MySQL INSERT Синтаксис и непонятно, почему

Есть ли у кого-нибудь идеи по поводу почему? его прохождение адреса электронной почты и от ошибки выглядит как его нарушение там, но я могу ошибаться.

У вас возникла ошибка в синтаксисе SQL; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать рядом с «INSERT INTO клиентов SET имя =„Джеймс Брэндон“, электронной почты =«Джеймсу @ окружающей среды»в строке 10

PHP

$query .= "INSERT INTO customers SET 
       name = '".$customer_name."', 
       email = '".$customer_email."', 
       address_1 = '".$customer_address_1."', 
       address_2 = '".$customer_address_2."', 
       town = '".$customer_town."', 
       county = '".$customer_county."', 
       postcode = '".$customer_postcode."', 
       phone = '".$customer_phone."', 

       name_ship = '".$customer_name_ship."', 
       address_1_ship = '".$customer_address_1_ship."', 
       address_2_ship = '".$customer_address_2_ship."', 
       town_ship = '".$customer_town_ship."', 
       county_ship = '".$customer_county_ship."', 
       postcode_ship = '".$customer_postcode_ship."'; 
      "; 
+0

вы добавляете запрос вставки в '$ query', что неверно –

+3

Возможно, у вас смешанные синтаксисы 'INSERT' и' UPDATE'? – Eggplant

+3

вы написали неправильный синтаксис для вставки - INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...) –

ответ

2

Два возможных синтаксиса для инструкции INSERT. В первом следующем случае вы указываете только col, который хотите заполнить.

INSERT INTO TABLE (COL1, COL2, COL3) 
VALUES (VAL_COL1, VAL_COL2, VAL_COL3); 

Вы также можете вставить без предоставления col_name, но вы должны указать значения всех столбцов и в порядке.

Первый вариант лучше на мой взгляд и позволит избежать многих ошибок, особенно когда у вас много разных столбцов в таблице.

1

Согласно this reference, вы должны попробовать что-то вроде этого:

INSERT INTO customers (name , email, address_1, ...) 
VALUES (value1, value2, value3,...) 

Редактировать: Как уже упоминалось в комментариях к вашему ответу, пожалуйста, consider using PDO. Это намного безопаснее и, на мой взгляд, еще проще справиться.

0

@James Поскольку вы выполняете команду INSERT. Сделайте следующее.

$query = "INSERT INTO customers (name, email, address_1, address_2, town, county, postcode, phone, name_ship, address_1_ship, address_2_ship, town_ship, county_ship, postcode_ship) VALUES('".$customer_name."', '".$customer_email."', '".$customer_address_1."', '".$customer_address_2."', '".$customer_town."', '".$customer_county."', '".$customer_postcode."', '".$customer_phone."', '".$customer_name_ship."', '".$customer_address_1_ship."', '".$customer_address_2_ship."', '".$customer_town_ship."', '".$customer_county_ship."', '".$customer_postcode_ship."')"; 

Thanks & С уважением,

Вивек

+0

Спасибо, кажется им получить синтаксическую проблему с дата и/любые идеи? https://shrib.com/SZyBXpxN – James

+0

Не могли бы вы разместить небольшой скрипт PHP и сообщение об ошибке, которое будет полезно вам помочь. А также ссылка URL не работает. –

+0

Как я рассмотрел ваш код. Я не получаю никаких синтаксических ошибок. Единственное, что нам нужно рассмотреть, заключается в том, находятся ли эти переменные foreach и post внутри этого условия if. 'if (isset ($ _ POST ['invoice_product'])) {// проверяет, отправлена ​​ли форма или нет. foreach ($ _POST ['invoice_product'] as $ key => $ value) {// товары для счета-фактуры // ваш код идет здесь. } } ' –

0

Пожалуйста, обратите внимание, что вам не нужно добавить, что

; между вашим MySQL Query

ваш измененный запрос будет

$query =  "INSERT INTO customers SET name = '".$customer_name."', 

        email = '".$customer_email."', 

        address_1 = '".$customer_address_1."', 

        address_2 = '".$customer_address_2."', 

        town = '".$customer_town."', 

        county = '".$customer_county."', 

        postcode = '".$customer_postcode."', 

        phone = '".$customer_phone."', 

        name_ship = '".$customer_name_ship."', 

        address_1_ship = '".$customer_address_1_ship."', 

        address_2_ship = '".$customer_address_2_ship."', 

        town_ship = '".$customer_town_ship."', 

        county_ship = '".$customer_county_ship."', 

        postcode_ship = '".$customer_postcode_ship."' 
      "; 

Пожалуйста, обратите внимание, что

запятой после $customer_postcode_ship и нет необходимости в . в $query

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