我有这个清单
info=[[u' Rasta.eon 2 - 1 Rasta.Xd ', u'Razer CS:GO Tournament 2', u'26-02-2014'], [u' XPC 1 - 2 WP.GG ', u'Roccat DotA 2 Tournament', u'26-02-2014']]
conn= MySQLdb.connect(host='localhost',user='root',passwd='',db='ee')
c = conn.cursor()
query = "INSERT INTO todaysmatches (match,tournamentname,matchdate) VALUES (%s,%s,%s)"
c.executemany(query, info)
conn.commit()
conn.close()
当我尝试执行查询时出现此错误
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match,tournamentname,matchdate) VALUES \n(' Rasta.eon 2 - 1 Rasta.Xd ','Razer C' at line 1")
匹配是varchar(150),锦标赛名称是varchar(150),匹配日期是DATE
答案 0 :(得分:3)
match
是MySQL中的关键字。如果你反引用它,你可以将它用作列名
INSERT INTO todaysmatches (`match`,tournamentname,matchdate) VALUES (%s,%s,%s)
但如果您为此列选择其他名称会更方便。
看看当您尝试使用名为match
的列创建表时会发生什么:
mysql> create table foo (match varchar(150), tournamentname varchar(150), matchdate DATE);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match varchar(150), tournamentname varchar(150), matchdate DATE)' at line 1
mysql> create table foo (`match` varchar(150), tournamentname varchar(150), matchdate DATE);
Query OK, 0 rows affected (0.03 sec)
答案 1 :(得分:0)
将您的第四行修改为:
query = "INSERT INTO todaysmatches (`match`,`tournamentname`,`matchdate`) VALUES (%s,%s,%s)"