# -*- 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 赋值的时候用的是中文的双引号,这个会有问题
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------------")
请尝试以上修改后的代码,如果问题仍然存在,请提供更详细的错误信息以便进一步分析。
【相关推荐】