![](/img/trans.png)
[英]Python mysql.connector - cursor.execute("WHERE … ) returns NoneType
[英]Use multi=True in cursor.execute(query) mysql.connector Python
我在python mysql.connector中有以下查詢:
query="SELECT `AUTO_INCREMENT`FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cl55-mm-px-db' AND TABLE_NAME = 'dj_Venues';"
cursor.execute(query)
autoV=str(cursor.fetchone())
autoV=autoV.replace('(','').replace(')','').replace(',','')
query="REPLACE INTO dj_Venues SET venueName = %s,venueAddress = %s,venueBands = %s,venueResident = %s,city=%s,country=%s;'"
variable=(venue,address,venueID,venueID1,city,country1)
cursor.execute(query,variable )
query="SELECT `AUTO_INCREMENT`FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cl55-mm-px-db' AND TABLE_NAME = 'dj_Events';"
cursor.execute(query)
autoE=str(cursor.fetchone())
autoE=autoE.replace('(','').replace(')','').replace(',','')
query="REPLACE INTO dj_Events SET eventName = %s,bandsintownID = %s,residentID=%s,date = %s,startTime=%s,sourceBands=%s,sourceResident=%s;'"
variable=(eventName,eventID,eventID1,date,start,source,source)
cursor.execute(query,variable )
query="REPLACE INTO dj_Master SET artistID = %s,eventID = %s,venueID = %s;'"
variable=(artistID,autoE,autoV)
cursor.execute(query,variable )
當我運行此腳本時,出現以下錯誤:
"Use multi=True when executing multiple statements")
mysql.connector.errors.InterfaceError: Use multi=True when executing multiple statements
我在每個cursor.execute()
添加了multi=True
,但是查詢沒有執行,因此我的表仍然為空!
您所有的陳述都有;
分號結尾。 刪除這些,在cursor.execute()
運行時不需要這些,而這些是創建錯誤消息的原因:
query="SELECT `AUTO_INCREMENT`FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cl55-mm-px-db' AND TABLE_NAME = 'dj_Venues'"
cursor.execute(query)
接下來,不要在一行上使用str()
; 如果要連接的值使用str.join()
:
autoE = ''.join(cursor.fetchone())
或者,如果只有一個值,則只索引到元組中:
autoE = cursor.fetchone()[0]
或僅使用一個變量使用元組分配:
autoE, = cursor.fetchone()
如果該行中有多個結果,則后者會引發錯誤,這有助於在查詢更改時查找錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.