我的输出在csv中有效,但是在尝试将其插入mysql时无效。我收到以下错误,但无法解决。我是新手,所以我可能缺少明显的东西。 Python 2x和3x中存在相同的错误。
pymysql.err.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 'key, title, content, start_date, end_date, initial_update) VALUES('reddit', 'h' at line 1")
mainDB_cnx = pymysql.connect(user='XXXX', password='XXXX',
host='XXXX',
database='Test', use_unicode=True, charset="utf8mb4")
with mainDB_cnx:
mainDB_cursor = mainDB_cnx.cursor()
mainDB_cursor.execute(
"INSERT INTO reddit(site, site_url, key, title, content, start_date, end_date, initial_update) VALUES(%s, %s, %s, %s, %s, STR_TO_DATE(%s,'%%Y-%%m-%%d'), STR_TO_DATE(%s,'%%Y-%%m-%%d'), STR_TO_DATE(%s,'%%Y-%%m-%%d'))",
(["reddit", "http://www.reddit.com", url, title, content, datetime.strptime(date,'%d %B %Y').strftime('%Y-%m-%d'), datetime.strptime('2018-07-25','%Y-%m-%d').strftime('%Y-%m-%d'), datetime.strptime('2018-07-25','%Y-%m-%d').strftime('%Y-%m-%d')]))
print("Successful")
答案 0 :(得分:0)
KEY
是结构化查询语言的MySQL方言中的保留字。看到这个。 https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-K
因此,每当提及该列名称时,都必须用定界符将该列名称包装起来。
尝试
INSERT INTO reddit (side, site_url, `key`, title, ....
或者更好的是,不要在表中的列名中使用保留字。下一个要在您的系统上工作的程序员会谢谢您。