我的以下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 = ''
答案 0 :(得分:6)
你正在使用一个mysql保留的关键字long
,你需要在带有反引号的查询中将其转义,让它理解它是column name
`long` = -6.52607,
关于mysql reserved keyword
的附注,我想补充说,您可以通过提供表别名然后在其前使用alias.
列名称来避免转义它们。实际上INSERT
查询不支持表别名,因此您无法在此特定情况下使用。
答案 1 :(得分:5)
如果您尝试google错误消息,LONG
是MySQL中的保留关键字。
你有两种选择让它发挥作用,
一,用反引号包装列名,
`long` = -6.52607
或两个,更改列名称,以便错误不会再返回。
您可以在此处找到所有关键字的列表:MySQL Reserved Keywords List
答案 2 :(得分:3)
long是一个关键词,你应该通过SQL
转义和引用你的文本将长期改为“长”
`long` = -6.52607,