我正在寻找一种方法,将列表中的值放入准备好的 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_()
最佳答案
以下是如何使用 PyMySQL 执行此操作的示例:
query = 'INSERT INTO my_table (Column1Name, Column2Name, Column3Name) VALUES (%s, %s, %s);'
cur.execute(query, ('string_1', '3', 'anothervalue', ))
?
在此不是有效的占位符,但 %s
有效。
关于mysql - Python 3 MySQL 使用问号占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924635/