gpt4 book ai didi

python /SQLITE : How do I escape commands/strings

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:31 27 4
gpt4 key购买 nike

我想在 python 中构造一个 sqlite3 数据库查询,然后将它写入一个文件。

我是 python 的 sql 数据库接口(interface)的 super 粉丝,AFAICT 包装了所有你可能会用一个漂亮的小 '?' 弄乱的调用。为您清理/转义字符串的参数,但这不是我想要的。我实际上只想准备和转义一个 sql 语句 - 为此,我需要转义/引用任意字符串。

例如:

query = "INSERT INTO example_table VALUES ('%s')",sqlite_escape_string("'")

所以查询应该包含:“插入 example_table VALUES ('''')”

请注意,它插入了一个额外的 ' 字符。

PHP 的等价物是 sqlite_escape_string()perl 的等价物是 DBI 的 quote()我感觉Python的整体界面更好,但我恰好需要查询,pre-exec。

最佳答案

当您使用 SQLite 时,它​​不会将参数化查询转回文本。它有一个 api(“绑定(bind)”)并单独存储值。只需更改绑定(bind),就可以使用不同的值重用查询。这是语句缓存的基础。因此,在执行您描述的操作时,您不会从 python/sqlite 获得任何帮助。

您没有说明您为什么要这样做。通常的原因是某种形式的追踪。我的备用 Python/SQLite 界面 (APSW) 提供了简单的跟踪功能——您甚至不必触摸代码即可使用它:

https://rogerbinns.github.io/apsw/execution.html#apsw-trace

SQLite 还有一个授权 API,可以让你否决语句执行的操作。这还有一个副作用,即告诉您语句最终将执行哪些操作。

关于 python /SQLITE : How do I escape commands/strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8697330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com