Python sqlite3占位符

Python sqlite3占位符,第1张

概述有没有办法在sqlite3中设置查询的占位符?我有一些与数据库一起工作的函数,如果它们可以使用mysql和sqlite,它会更令人满意.Mysql和Postgres python apis使用%s作为占位符,但sqlite3使用问号代替.我正在寻找一种方法来使用相同的占位符,无论数据库引擎如何.谢谢你的帮助.最佳答案更新以修复我之前关于如何使用paramst

有没有办法在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 sqlite3paramstyle = sqlite3.paramstyleif 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 }
总结

以上是内存溢出为你收集整理的Python sqlite3占位符全部内容,希望文章能够帮你解决Python sqlite3占位符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1167765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存