我的查询适用于execute,但executemany()
返回:
编程错误:executemmany()只能执行DML语句。
查询:
c.execute("SELECT * FROM Donors WHERE firstname=:First AND lastname=:Last",ds[1].donor).fetchall()
字符串
对比:
c.executemany("SELECT * FROM Donors WHERE firstname=:First AND lastname=:Last",[ds[1].donor,ds[2].donor]).fetchall()
型
其中ds[i].donor
看起来像{'First': 'Cathy', 'Last': 'Lee'}
。我是不是漏掉了什么?
1条答案
按热度按时间jdgnovmf1#
您不能使用
SELECT
与executemany()
。DML代表DataModificationLanguage,SELECT
不被视为modification。你需要做的可能是在数据上循环:
字符串
**更新:发现它是,见下面的更新!**编辑,我还不能弄清楚,使其可复制粘贴:您也可以使用
IN(...)
操作,它应该是沿着于以下内容的操作:型
IN
子句更新:这是一个演示如何使用占位符动态构造具有绑定参数的查询的工作示例,由@olepinto的评论引发:
型
这将输出以下内容:
型