往SQL插入数据时 有错误
AttributeError: 'pymssql.Cursor' object has no attribute 'commit'插入时,提示这个错误。。
pymmsql 更新或插入时,最后不是都得加个上commit() 方法的吗?#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymssql
class Conn:
def __init__(self):
self.con = pymssql.connect(
host='127.0.0.1',
user='sa',
password='qweasdzxc',
database='friends',
#port='6346',
charset='utf8')
def storage(self,storagename):
cur = self.con.cursor()
cur.execute(storagename)
cur.close()
def select(self,sql):
cur = self.con.cursor()
cur.execute(sql)
data = cur.fetchall()
cur.close()
return data
def changedata(self,sql):
cur = self.con.cursor()
cur.execute(sql)
cur.commit()
#cur.commite()
cur.close()
def close(self):
self.con.close()
def _test():
# 数据匹配测试部分 ;
sql = "select KHDM from zdsales where dt=\'{}\' and khdm = \'{}\' and code = 0".format(dt,name)
con=Conn()
data = con.select(sql)
if len(data) ==0:
sq1 ="insert into zdsalse values ('2020-05-01','gddg01','某某店','1000','300','200','500','0',0)"
con.changedata(sql)
print("插入成功")
con.close()
if __name__ == '__main__':
name=input('输入')
# pwd=input('输入')
dt = input('日期')
_test()
没有 begin 哪里来的 commit 赚小钱 发表于 2020-6-8 15:27
没有 begin 哪里来的 commit
begin? maxliu06 发表于 2020-6-8 15:42
begin?
https://stackoverflow.com/questions/30842031/attributeerror-mysqlcursor-object-has-no-attribute-commit 赚小钱 发表于 2020-6-8 15:57
https://stackoverflow.com/questions/30842031/attributeerror-mysqlcursor-object-has-no-attribute-co ...
明白你意思了。。。
cur.commit() 这里改成 self.con.commite()
程序是可以正常运行,
但又有一个问题。。。我在数据库的这个表上,找到不插入进来的记录 maxliu06 发表于 2020-6-8 16:10
明白你意思了。。。
cur.commit() 这里改成 self.con.commite()
已知条件太少,无法解答。 本帖最后由 maxliu06 于 2020-6-8 17:18 编辑
赚小钱 发表于 2020-6-8 17:03
已知条件太少,无法解答。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymssql
class Conn:
def __init__(self):
self.con = pymssql.connect(
host='127.0.0.1',
user='sa',
password='qweasdzxc',
database='friends',
#port='6346',
charset='utf8')
def storage(self,storagename):
cur = self.con.cursor()
cur.execute(storagename)
cur.close()
def select(self,sql):
cur = self.con.cursor()
cur.execute(sql)
data = cur.fetchall()
cur.close()
return data
def changedata(self,sql):
cur = self.con.cursor()
cur.execute(sql)
self.con.commit()
#cur.commite()
def close(self):
self.con.close()
def _test():
# 数据匹配测试部分 ;
sql = "select KHDM from zdsales where dt=\'{}\' and khdm = \'{}\' and code = 0".format(dt,name)
con=Conn()
data = con.select(sql)
if len(data) ==0:
sq1 ="""insert into zdsales (dt,khdm,khmc,yj,cash,card,ticket,lINTEGRAL,code)
values ('2020-05-01','gddg01','某某店','1000','300','200','500','0',0)"""
con.changedata(sql)
print("插入成功")
con.close()
if __name__ == '__main__':
name=input('输入')
# pwd=input('输入')
dt = input('日期')
_test()
就这个,调用 changedata 函数后, 能正常输出 插入成功
可是,回到数据库查表时,
发现我 changedata 函数 插入数据库表的内容 ,并没有 插入到数据库中
是不是changedata 后面的commit 部分有问题??
maxliu06 发表于 2020-6-8 17:16
就这个,调用 changedata 函数后, 能正常输出 插入成功
可是,回到数据库查表时, ...
请仔细检查 L44 - L46 的代码 赚小钱 发表于 2020-6-8 17:44
请仔细检查 L44 - L46 的代码
谢谢,, 解决了 maxliu06 发表于 2020-6-8 16:10
明白你意思了。。。
cur.commit() 这里改成 self.con.commite()
最后解决了吗哥?程序运行,数据库却没有记录
页:
[1]