我正在寻找一种将列表中的值拖放到准备好的SQL字符串中的方法,该字符串具有问号作为占位符。我以前在PyQT中使用过此功能,但在这里我使用bindValue函数。使用pymysql似乎没有这样的功能。
以下是我准备的SQL字符串类型的示例:
INSERT INTO my_table (`Column1Name`, `Column2Name`, `Column3Name`) VALUES (?,?,?);
然后,我有一个要插入(或链接到)问号占位符的值的列表。
my_values_list['string_1', '3', 'anothervalue']
就像我说的那样,我以前在PyQT中使用过这种方法,所以我知道这个“?”占位符方法有效,但是没有bindValue函数,我看不到如何使用pymysql使它起作用。
如果可以的话,这是我使用PyQT的QSqlQuery bindValues函数工作的方式,其中query.exec_()执行SQL字符串:
if my_values_list:
[self.query.bindValue(i, my_values_list[i]) for i in range(len(my_values_list))]
self.query.exec_()
答案 0 :(得分:1)
以下是如何使用PyMySQL进行此操作的示例:
query = 'INSERT INTO my_table (Column1Name, Column2Name, Column3Name) VALUES (%s, %s, %s);'
cur.execute(query, ('string_1', '3', 'anothervalue', ))
?
在这里不是有效的占位符,但是%s
是有效的。
答案 1 :(得分:1)
也许这篇文章对您有帮助,虽然它很老,但仍然是有效的AFAIU,我发现它给了我很好的概述: What does a question mark represent in SQL queries?