簡體   English   中英

Python運算符pymysql

[英]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 );"  )

根據源代碼paramstyleformat ,所以你需要改變...

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM