gpt4 book ai didi

mysql - 无法使用 pymysql 将数据插入数据库,我的语法有什么问题?

转载 作者:行者123 更新时间:2023-11-29 07:25:44 25 4
gpt4 key购买 nike

我正在尝试将一些数据插入到 mysql 中的表中。但是我的sql语法有问题,我就是找不到,网上也找不到。

也尝试使用原始字符串插入,得到相同的错误信息。


def save_room_info(data):
conn = pymysql.connect(...)//this goes right
try:
with conn.cursor() as cursor:
table = 'room'
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data))
sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
try:
if cursor.execute(sql, tuple(data.values())):
print('Successful')
conn.commit()
except Exception:
print('Failed', sys.exc_info())
conn.rollback()
finally:
conn.close()


def main():
data = {
'title': 'a',
'screenshot': 'a',
'type': 0,
'viewCount': 0,
'nickname': 'Allen',
'level': 20,
'headUrl': 'a',
'tag': 'a',
'rank': 3,
'followerCount': 290
}
save_room_info(data)

表'room'中有一个'id'字段,我将其设置为自动递增。而“id”是唯一的主键。但是即使我在数据插入时添加了id,它仍然给出了同样的错误信息。

收到此错误消息:

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 'rank, followerCount) VALUES ('a', 'a', 0, 0, 'Allen', 20, 'a', 'a', 3, 290)' at line 1"), 

最佳答案

Rank是mysql的保留关键字。看这里https://dev.mysql.com/doc/refman/8.0/en/keywords.html

你有两个选择1.重命名列2. 用反引号包裹列,如 rank

关于mysql - 无法使用 pymysql 将数据插入数据库,我的语法有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com