手上没有mysql,用sqlite3做了一个库,模拟你的环境,测试可以成功.
你的问题,我想应该是sql语句不对.
我的代码供你参考:
程序代码:
# encoding = utf-8
# import pymysql
import sqlite3
def openDb():
'''打开数据库连接'''
# db = pymysql.connect(host="localhost", user="root", password="root", database="dangjgl",charset="utf8mb4",autocommit=True)
dbfile = r"test.db" # 手上没有mysql,用sqlite3做了一个库,模拟你的环境,测试可以成功.这个库中已经建好了一个表info_dangy
dbCon0 = sqlite3.connect(dbfile)
return dbCon0
def execSql(sql,values):
'''执行数据库的增删、改、删操作'''
db=openDb() #连接数据库
cursor=db.cursor() #使用cursor()获取操作游标
try:
cursor.execute(sql,values) #执行增删改的sql语句
() #提交数据
if sql[:6].upper()=='SELECT':
return len(cursor.fetchall())
else:
return 1
except:
db.rollback() #发生错误时回滚
return -1 #执行失败
finally:
cursor.close() #关闭游标
db.close() #关闭数据库连接
def addPerson(list1):
name=list1[0]
gender=list1[1]
education=list1[2]
date_cs=list1[3]
date_rd=list1[4]
post=list1[5]
post_dang=list1[6]
para2=''
if name != "" and date_cs != "" and date_rd != "": #名称及日期不能为空
if getName(name) > 0: #判断党员名是否存在
print("您要添加的党员'%s'已经存在,请重新输入!"%(name))
else:
csql = "insert into info_dangy(name,gender,education,date_cs,date_rd,post,post_dang) " + \
"values ('%s','%s','%s','%s','%s','%s','%s')"%(name,gender,education,date_cs,date_rd,post,post_dang)
# print(csql)
result=execSql(csql, para2)
if result >= 0: # 如果结果大于0,说明添加成功
print('提示,信息添加成功!')
else:
print('请输入数据后,再执行相关操作!')
def getName(sname):
# 根据编号和性名查询数据,返回-1,查询失败;返回0,查无此人;返回>0,查询到?条记录.
para2 = ""
result = execSql("select * from info_dangy where name = '%s'"%(sname), para2)
# print( result) # 返回查询结果的记录
return result
def dropPerson(sname):
# 根据编号和性名查询数据,返回-1,查询失败;返回0,查无此人;返回>0,查询到?条记录.
para2 = ""
if getName(sname) > 0: #判断党员名是否存在
print("您要删除的党员'%s'已存在,程序将尝试删除..."%(sname))
result = execSql("Delete from info_dangy where name = '%s'"%(sname), para2)
if result >= 0: # 如果结果大于0,说明添加成功
print('提示,信息删除成功!')
else:
print("您要删除的党员'%s'不存在!"%(sname))
def updatePerson(list1):
name=list1[0]
gender=list1[1]
education=list1[2]
date_cs=list1[3]
date_rd=list1[4]
post=list1[5]
post_dang=list1[6]
para2=''
if name != "" and date_cs != "" and date_rd != "": #名称及日期不能为空
if getName(name) > 0: #判断党员名是否存在
print("您要添加的党员'%s'已经存在,程序将执行修改!"%(name))
csql = "update info_dangy set name='%s',gender='%s',education='%s',date_cs='%s', \
date_rd='%s',post='%s',post_dang='%s' \
Where name ='%s' "%(name,gender,education,date_cs,date_rd,post,post_dang,name)
# print(csql)
result=execSql(csql, para2)
if result >= 0: # 如果结果大于0,说明修改成功
print('提示,信息修改成功!')
else:
print("您要修改的党员'%s'不存在,程序将为你添加一条记录!"%(name))
csql = "insert into info_dangy(name,gender,education,date_cs,date_rd,post,post_dang) " + \
"values ('%s','%s','%s','%s','%s','%s','%s')"%(name,gender,education,date_cs,date_rd,post,post_dang)
# print(csql)
result=execSql(csql, para2)
if result >= 0: # 如果结果大于0,说明添加成功
print('提示,信息添加成功!')
else:
print('请输入数据后,再执行相关操作!')
# 用法示例:
lst = ['吕一菲','上海','大学','2018-4-24','2019-5-16','1','1']
# print(getName(lst[0])) # 查,返回0或1或-1
# addPerson(lst) # 添加
# updatePerson(lst) # 修改
# dropPerson(lst[0]) # 删除