MySql数据库通过%s传参
举例说明:
需要在数据库中插入moviename,stars,time三个字段信息
db = pymysql.connect('127.0.0.1','root','123456','zwl',charset = 'utf8')
cursor = db.cursor()
**pym = "insert into maoyan(moviename,stars,time) values(%s,%s,%s)"%(i[0],i[1],i[2])**
try:
cursor.execute(pym)
db.commit()
except Exception as e:
print(e)
db.rollback()
cursor.close()
db.close()
如上代码所示,传参时%s未加双引号,提示错误‘Column count doesn’t match value count at row 1’,给%s加上单引号后,
pym = “insert into maoyan(moviename,stars,time) values(’%s’,’%s’,’%s’)”%(i[0],i[1],i[2])
程序运行成功。
记得以前也有可以不用给%s加引号传参成功的时候,那么什么时候需要加引号?什么时候不用加引号呢?
如下代码所示,可以不用给%s加引号
db = pymysql.connect('127.0.0.1','root','123456','userdb',charset = 'utf8')
cursor = db.cursor()
**upd = 'update user set age = %s where username = %s'** #更新参数
try:
**code = cursor.execute(upd,[age,username])** #函数传参
db.commit() #提交更新到数据库
print('已保存到mysql')
if code == 1:
return True
except Exception as e:
db.rollback()
print('Error:',e)
cursor.close()
db.close()
此时是通过cursor.execute进行传参,不能给%s加引号。