2013-05-31 4 views
-1

В моем следующем SQL-коде появляется ошибка. Сообщение об ошибке, которое появляется в phpMyAdmin, равноПочему мой код дает мне ошибку SQL

# 1064 - У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'long = -6.52607, lat = 54.10046, reg =' Rge info ere ', info =' общая информация здесь 'по строке 1

Длинные и лат работают нормально, когда я вставляю их напрямую с помощью phpmyadmin, но теперь при выполнении SQL-запроса. Два поля задаются как float. Я устал их обоих с использованием и без использования котировок.

INSERT INTO events SET 
    name = 'Home Event', 
    url = 'home-event', 
    eventDate = '2013-06-29', 
    address1 = '18 Daly Park', 
    address2 = 'Silverbridge', 
    city = 'Newry', 
    county = 'Down', 
    postcode = 'BT35 9PJ', 
    long = -6.52607, 
    lat = 54.10046, 
    reg = 'Rge info ere', 
    info = 'general info here', 
    contact = 'contact me', 
    image = '' 
+1

' Long' является зарезервированным словом. Вам нужно будет процитировать его в обратном направлении; или переименовать столбец в другое. – andrewsi

+0

Но как это работает, используя интерфейс phpMyAdmin? –

+0

@PierceMcGeough phpMyAdmin знает об этой проблеме и помещает эти «вокруг». – glglgl

ответ

5

Если вы пытались Google сообщение об ошибке, LONG является зарезервированным ключевым словом в MySQL.

У вас есть два варианта, чтобы сделать его работу,

один, оберните имя столбца с кавычкой,

`long` = -6.52607 

или два, изменить имя столбца, так ошибка не будет возвращаться обратно.

Вы можете найти здесь список всех ключевых слов: MySQL Reserved Keywords List

+0

+1 для здравого смысла – Kermit

6

вы используете MySQL зарезервированное ключевое слово которым является long, вам нужно будет, чтобы избежать его в запросе с кавычкой, чтобы это понять, что это column name

`long` = -6.52607, 

Посмотрите documentation here

Как сторона отмечает о mysql reserved keyword Я хотел бы добавить, что вы можете избежать избежать их, давая таблицу аль ias и затем использовать имя столбца с alias. перед этим. На самом деле запрос INSERT не поддерживает псевдоним таблицы, поэтому вы не можете использовать его в этой конкретной ситуации.

3

долго это ключевое слово, вы должны войти в практику побега и цитирование текста с SQL

изменения долго `long`

`long` = -6.52607, 
Смежные вопросы