为了账号安全,请及时绑定邮箱和手机立即绑定

Python运算符pymysql

Python运算符pymysql

aluckdog 2021-03-29 16:13:23
我在使用pymysql和python运算符时遇到了一些麻烦。我对python运算符了解不多。我想将一些值插入数据库。代码:import pymysqlconn = pymysql.connect(host='127.0.0.1', unix_socket='/Applications/MAMP/tmp/mysql/mysql.sock', user='root', passwd='root', db='db2', charset='utf8')cur = conn.cursor()v = (123 , 'foobarfoobar', 'foo', 1241, 3, 132 )cur.execute("INSERT INTO celebs(num_id, Text, Handle, Followers, RT, Timestamp) VALUES (?,?,?,?,?,?)", v)根据记录,mySQL结构为INT (PRI), INT, TEXT, VARCHAR, INT, INT, VARCHAR。我运行这个,我得到 TypeError: not all arguments converted during string formatting有关如何解决该问题的任何详细信息,并可能对操作符如何在python中工作进行了一些解释。我认为在php中更容易:$a = 22; echo "$a days";
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

根据源代码,paramstyleis是format,因此您需要进行更改...

cur.execute("INSERT INTO ... VALUES (?,?,?,?,?,?)", v)

...到...

cur.execute("INSERT INTO ... VALUES (%s,%s,%s,%s,%s,%s)", v)

如果您使用的是事务存储引擎(例如InnoDB),则必须conn.commit()在执行INSERT查询后通过调用来显式提交事务。


查看完整回答
反对 回复 2021-04-02
?
慕标5832272

TA贡献1966条经验 获得超4个赞

我认为错误在于v的数据结构。它应该是列表而不是元组


查看完整回答
反对 回复 2021-04-02
?
MYYA

TA贡献1868条经验 获得超4个赞

检查mysql引擎。Pymysql不能与InnDB一起使用,但是当我从InnoDB更改为MyISAM时,它可以正常工作


查看完整回答
反对 回复 2021-04-02
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信