簡體   English   中英

在python mySQLdb中創建動態表名

[英]Making a dynamic table name in python mySQLdb

我正在嘗試編寫一個程序,在該程序中我遍歷字符串列表並使用這些字符串為表命名,但是我不太了解如何正確地對所有內容進行轉義而不會出錯。 現在是我的代碼:

cursor = db.cursor()
cursor.execute('DROP TABLE IF EXISTS %s' %data[1])

0L

sql ="""CREATE TABLE %s  (IP TEXT, AVAILIBILITY INT)""" %data[1]
cursor.execute(sql)
0L

for key in data[0]:

    cursor.execute("""INSERT INTO %s VALUES (%s,%s)""" %(data[1],key,data[0][key]))
    db.commit()


1L
cursor.execute("""SELECT * FROM %s""" %data[1])
1L
print cursor.fetchall()
((188L, 90),) 
db.close()

當我輸入字符串而不是代表字符串的變量時,我的代碼有效,但使用變量時失敗

您應該在這一行中使用字符串格式

sql ="""CREATE TABLE data[1] (IP TEXT, AVAILIBILITY INT, AP TEXT )"""

當您在其上調用cur.execute(sql)方法時,這將引發errorclass或/和errorvalue錯誤。

嘗試這樣的事情:

sql ="""CREATE TABLE %s (IP TEXT, AVAILIBILITY INT, AP TEXT )""" %data[1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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