python 数据库插入操作报错,求解

# -*- coding:utf-8 -*-
import re
from pymysql import *
import datetime

db = connect(host='XX.XX.XX.XX',
                     port=3306,
                     user='root',
                     password='XXXXX',
                     database='python001',
                     charset='utf8')


cursor3 = db.cursor()

current_time = datetime.datetime.now()

user_id = “A100”

query_insert_order = "INSERT INTO goods_orders(`order_create_time`, `customer_id`) VALUES (%s, %s);"

cursor3.execute(query_insert_order, [current_time, user_id])
print("------------------1------------")
"""每次新增,修改,删除后都需要提交"""
print("------------------2------------")
db.commit()
print("------------------3------------")


执行后会打印 ------------------1------------  ,再这之后报错:一直无头绪,求解

File "E:\learnPython\08_数据库\python和MySQL交互\order_test.py", line 62, in create_order
    cursor3.execute(query_insert_order, [current_time, user_id])
  File "E:\python\Lib\site-packages\pymysql\cursors.py", line 153, in execute
    result = self._query(query)

我试了下,你这个代码没有什么问题。就是上面代码中 user_id 赋值的时候用的是中文的双引号,这个会有问题

img

query_insert_order = "INSERT INTO goods_orders(order_create_time, customer_id) VALUES (%s, %s);"

这个你先写成硬编码的,看看是否可以运行,比如

query_insert_order = "INSERT INTO goods_orders(order_create_time, customer_id) VALUES ('2023-08-25', 'A100');"
如果还不行,那么就是类型字段问题,或者重复插入
如果可以,那么检查你current_time和user_id字符串是什么,是否缺少引号,为空

【以下回答由 GPT 生成】

问题的根本原因是Python中使用的引号不正确,导致变量user_id的赋值错误,进而导致数据库插入操作报错。请将代码中的引号修改为双引号或单引号,并重新执行。

以下是修改后的代码:

# -*- coding:utf-8 -*-
import re
from pymysql import *
import datetime

db = connect(host='XX.XX.XX.XX',
             port=3306,
             user='root',
             password='XXXXX',
             database='python001',
             charset='utf8')

cursor3 = db.cursor()

current_time = datetime.datetime.now()

user_id = 'A100'  # 修改引号为单引号或双引号

query_insert_order = "INSERT INTO goods_orders(`order_create_time`, `customer_id`) VALUES (%s, %s);"

cursor3.execute(query_insert_order, [current_time, user_id])
print("------------------1------------")
print("每次新增、修改、删除后都需要提交")
print("------------------2------------")
db.commit()
print("------------------3------------")

请尝试以上修改后的代码,如果问题仍然存在,请提供更详细的错误信息以便进一步分析。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^