首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中使用SQL语句中的变量?

如何在Python中使用SQL语句中的变量?
EN

Stack Overflow用户
提问于 2009-05-23 20:20:34
回答 2查看 359.9K关注 0票数 111

我有以下Python代码:

代码语言:javascript
复制
cursor.execute("INSERT INTO table VALUES var1, var2, var3,")

其中var1是整数,var2var3是字符串。

如果没有Python将变量名作为查询文本的一部分,我如何编写变量名?

EN

回答 2

Stack Overflow用户

发布于 2009-05-24 01:14:24

Python DB-API的不同实现允许使用不同的占位符,因此您需要找出您使用的是哪一个占位符--它可能是(例如,使用MySQLdb):

代码语言:javascript
复制
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

或者(例如,使用Python标准库中的sqlite3 ):

代码语言:javascript
复制
cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))

或者其他(在VALUES之后,您可以使用(:1, :2, :3),或者“命名样式”(:fee, :fie, :fo)(%(fee)s, %(fie)s, %(fo)s),您可以将字典而不是地图作为第二个参数传递给execute)。检查正在使用的DB模块中的paramstyle字符串常量,并在http://www.python.org/dev/peps/pep-0249/中查找参数样式,以了解所有参数传递样式是什么!

票数 84
EN

Stack Overflow用户

发布于 2009-05-23 20:28:12

http://www.amk.ca/python/writing/DB-API.html

在简单地将变量的值附加到语句中时要小心:假设有一个用户将自己命名为';DROP TABLE Users;' --这就是为什么需要使用SQL转义,当您以适当的方式使用cursor.execute时,Python为您提供了SQL转义。URL中的示例如下:

代码语言:javascript
复制
cursor.execute("insert into Attendees values (?, ?, ?)", (name, seminar, paid))
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/902408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档