[英]Python operators 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";
$a = 22; echo "$a days";
更新:
我直接使用Insert into,它仍然沒有插入數據:
cur.execute("INSERT INTO celebs (num_id, Text, Handle, Followers, RT, Timestamp) VALUES (123 , 'foobarfoobar', 'foo', 1241, 3, 132 );" )
根據源代碼 , paramstyle
是format
,所以你需要改變...
cur.execute("INSERT INTO ... VALUES (?,?,?,?,?,?)", v)
...至...
cur.execute("INSERT INTO ... VALUES (%s,%s,%s,%s,%s,%s)", v)
如果您使用的是事務存儲引擎(如InnoDB),則必須在執行INSERT
查詢后通過調用conn.commit()
顯式提交事務。
我認為錯誤在於v的數據結構。 它應該是列表而不是元組
檢查mysql引擎。 Pymysql不能與InnDB一起使用,但是當我從InnoDB更改為MyISAM時它工作正常
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.