有没有步伐在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 }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|