gpt4 book ai didi

python - MySQL Python 日期和列表错误

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

我在 Python 中执行一些 MySQL 语句时遇到两个问题。首先,我有一个日期列,我已手动插入其他记录,格式为 YYYY-MM-DD(例如 2016-03-15)。但是,某处的格式化存在问题,我尝试了使用 strftime 等进行各种不同的格式化组合。

我引用了Inserting a Python datetime.datetime object into MySQL ,但这没有帮助。

import time 
formattedTime = datetime.datetime(3000, 12, 03)
formattedTime = formattedTime.date().isoformat()
a = 1
b = 2
c = 4
cursor.execute("INSERT INTO nodeStatistics VALUES(%s, %d, %d, %d, NULL, NULL, NULL, NULL, NULL, NULL, 'item1 item2 item3')" %(formattedTime, a, b, c))
cnx.commit()

日期字段是我的主键。我收到错误提示 0000-00-00 的 NULL 条目(这是输入 NULL 时的默认值),所以我知道“formattedTime”和相应的“%s”失败:mysql.connector.errors.IntegrityError:1062(23000):键“PRIMARY”的重复条目“0000-00-00”

其次,我有一个列表,listWords = list(),在我的数据库中我已将相应的类型设置为longtext。我在程序执行期间附加项目,最后我“”.join(listWords) 将列表转换为空格分隔的字符串,但是当我将上面的内容替换为:

cursor.execute("INSERT INTO nodeStatistics VALUES(%s, %d, %d, %d, NULL, NULL, NULL, NULL, NULL, NULL, %s)" %(formattedTime, a, b, c, listWords))

我收到错误:

mysql.connector.errors.ProgrammingError: 1064 (42000): 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“item1 item2 item 3”附近使用的正确语法

任何帮助将不胜感激!

最佳答案

您不得对 SQL 查询使用字符串插值。而是使用参数替换,对于 MySQL 来说,参数替换始终使用 %s,但处理方式有所不同;并通过逗号与值分隔,而不是替换 %s

cursor.execute("INSERT INTO nodeStatistics VALUES(%s, %s, %s, %s, NULL, NULL, NULL, NULL, NULL, NULL, 'item1 item2 item3')", (formattedTime, a, b, c))

关于python - MySQL Python 日期和列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36714028/

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