python sqlite3为什么参数标记不适用于列?

2024-10-01 09:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一名正在流血的python和sqlite初学者,当试图用如下变量替换列名时,会遇到极其奇怪的行为:

c.execute('SELECT ? FROM table', ("columnA",))

这让我大吃一惊,直到我最终发现只能使用参数标记来替换值名…而不是列名

现在我当然想知道为什么会这样,如果:

c.execute("SELECT %s FROM table" % (data))

真的是实现这一点的最佳方式——所有sqlinjection的废话,等等

任何意见都将不胜感激

谢谢


Tags: from标记executesqlitedata参数方式table
1条回答
网友
1楼 · 发布于 2024-10-01 09:18:54

编译语句时必须知道列名;它们不可能是参数。 上面的第二个代码段可以工作,因为其中的字符串替换是在调用execute函数之前完成的

相关问题 更多 >