为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 如何在 SQL 中选择 python 变量

SQL 如何在 SQL 中选择 python 变量

拉丁的传说 2022-06-28 17:19:22
尝试过类似 cur.execute('SELECT ? FROM translations WHERE imagename = ? ', (target, filename,))但它只是返回 [('de',), ('de',), ('de',), ('de',), ('de',), ('de',)]成为目标 = 'de'
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超3个赞

不能用于数据库?对象名称,例如表名和列名。允许这样做会带来很大的安全风险。这里的一种解决方法是只为每个逻辑流维护单独的语句,例如


if target == "col1":

    cur.execute('SELECT col1 FROM translations WHERE imagename = ?', (filename,))

elif target == "col2":

    cur.execute('SELECT col2 FROM translations WHERE imagename = ?', (filename,))

else:

    cur.execute('SELECT col3 FROM translations WHERE imagename = ?', (filename,))


查看完整回答
反对 回复 2022-06-28
?
当年话下

TA贡献1890条经验 获得超9个赞

通过 SQL 选择整行,然后从结果中获取相关值。就像是:

result = cur.execute('SELECT * FROM translations WHERE imagename = ?', (filename,))
texts = [row[target] for row in result.fetchall()]


查看完整回答
反对 回复 2022-06-28
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

由于参数被定义为传递数据值,因此您必须在程序中处理它。您可以获取所有列并在内存中处理它

[更新]

指向上面指定的解决方案


查看完整回答
反对 回复 2022-06-28
  • 3 回答
  • 0 关注
  • 373 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号