[英]Iterative insert into MySQL table from a python list
我試圖將下面列表中的項目(使用MySQLdb模塊)插入到mysql表中,只是為了發現插入字母'x'而不是列表中的名稱。
name_list=['james', 'john', 'michael']
for x in name_list:
cur.execute("INSERT INTO box(names) VALUES('x')")
db.commit()
有什么建議么? 謝謝。
這是一種有效的方法,但僅適用於int數據類型:
for x in xrange(1,1000,2):
cursor.execute('INSERT INTO Persons (PersonID) VALUES(' + str(x) + ');')
在這種情況下,您已插入字符串x。 變量x不會解析到SQL命令中。 但是,大多數數據庫庫的execute
語句在插入參數時都有一個巧妙的技巧,如下所示:
MySQLdb的
cur.execute("INSERT INTO box(names) VALUES(%s)", (x,))
*請注意, x
代表(x,)
因此將其放入SQL命令時將其視為元組。
pyodbc
cur.execute("INSERT INTO box(names) VALUES(?)",x)
如您所見,不同庫的詳細信息略有不同。 有關為字符串中的占位符使用的格式,請參見模塊的paramstyle
;有關為參數提供單個參數而不是元組的模塊,請參見模塊的文檔。
這將使用x並將其放在命令的值中。 更好的是,它根據目標表對其進行格式化!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.