加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Python sqlite3占位符

发布时间:2021-05-23 13:54:32 所属栏目:编程 来源:网络整理
导读:有没有步伐在sqlite3中配置查询的占位符? 我有一些与数据库一路事变的函数,假如它们可以行使mysql和sqlite,它会更令人满足. Mysql和Postgres python apis行使%s作为占位符,但sqlite3行使问号取代. 我正在探求一种要领来行使沟通的占位符,无论数据库引擎如

有没有步伐在sqlite3中配置查询的占位符?
我有一些与数据库一路事变的函数,假如它们可以行使mysql和sqlite,它会更令人满足.
Mysql和Postgres python apis行使%s作为占位符,但sqlite3行使问号取代.

我正在探求一种要领来行使沟通的占位符,无论数据库引擎怎样.

感谢你的辅佐.

最佳谜底 更新以修复我之前关于怎样行使paramstyle全局的错误

假如您行使的数据库模块遵循Python Database API Specification v2.0,则可以得到模块全局参数样式,它应该是以下任何一种:

>’qmark’问号样式,
????????????譬喻’…姓名=?’
>’数字’数字,位置气魄威风凛凛,
????????????譬喻’… WHERE name =:1′
>’定名’定名气魄威风凛凛,
????????????譬喻’… WHERE name =:name’
>’format’ANSI C printf名目代码,
????????????譬喻’… WHERE name =%s’
>’pyformat’Python扩展名目代码,
????????????譬喻’… WHERE name =%(name)s’

然后,您可以行使模块行使的占位符来编写SQL语句.你可以这样做:

import sqlite3

paramstyle = sqlite3.paramstyle

if paramstyle == 'qmark':
    ph = "?"
elif paramstyle == 'format':
    ph = "%s"
else:
    raise Exception("Unexpected paramstyle: %s" % paramstyle)

sql = "INSERT INTO foo VALUES (%(ph)s,%(ph)s,%(ph)s)" % { "ph" : ph }

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读