Python运算符pymysql

我在使用pymysql和python运算符时遇到了一些麻烦。我对python运算符了解不多。


我想将一些值插入数据库。代码:


import pymysql

conn = 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";


aluckdog
浏览 241回答 3
3回答

神不在的星期二

根据源代码,paramstyleis是format,因此您需要进行更改...cur.execute("INSERT INTO ... VALUES (?,?,?,?,?,?)", v)...到...cur.execute("INSERT INTO ... VALUES (%s,%s,%s,%s,%s,%s)", v)如果您使用的是事务存储引擎(例如InnoDB),则必须conn.commit()在执行INSERT查询后通过调用来显式提交事务。

慕标5832272

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

MYYA

检查mysql引擎。Pymysql不能与InnDB一起使用,但是当我从InnoDB更改为MyISAM时,它可以正常工作
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python