为什么我的代码给了我一个SQL错误

Pie*_*ugh -1 php mysql sql

我的以下SQL代码显示错误.phpMyAdmin中显示的错误消息是

#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'long = -6.52607,lat = 54.10046,reg ='Rge info ere',info ='general information here'第1行附近使用正确的语法

当我使用phpmyadmin直接插入它们时,long和lat工作正常,但现在执行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 = ''
Run Code Online (Sandbox Code Playgroud)

Fab*_*bio 6

你正在使用一个mysql保留的关键字long,你需要在带有反引号的查询中转义它,让它理解它是一个column name

`long` = -6.52607,
Run Code Online (Sandbox Code Playgroud)

看看这里的文档

关于mysql reserved keyword我的附注,我会补充一点,你可以通过给出一个表别名然后alias.在它之前使用列名来避免转义它们.实际上INSERT查询不支持表别名,因此您无法在此特定情况下使用.


Sky*_*ive 5

如果你试图谷歌错误消息,LONG是MySQL中的保留关键字.

你有两个选择让它工作,

一,用反引号包装列名,

`long` = -6.52607
Run Code Online (Sandbox Code Playgroud)

或者两个,更改列名称,以便错误不会再返回.

您可以在这里找到所有关键字的列表:MySQL保留关键字列表