MySQLdb模块支持预处理语句吗?

11 投票
2 回答
6778 浏览
提问于 2025-04-15 20:18

MySQLdb支持服务器端的预处理语句吗?我在它的手册里找不到答案。

2 个回答

12

它有某种参数化的功能,没错

即便如此,我还是建议你换用oursql。它相比MySQLdb有很多优点

  • oursql有真正的参数化功能。
  • oursql允许将文本或二进制数据直接流入数据库,也可以从数据库流出,而不需要在客户端先缓存所有数据。
  • oursql可以懒惰地插入行,也可以懒惰地获取行。
  • oursql默认支持unicode。
  • oursql支持Python 2.4到2.7,使用2.6及以上版本时没有任何弃用警告(见PEP 218),在2.7上也不会完全失败(见PEP 328)。
  • oursql采用BSD许可证。
18

查看一下 MySQLdb 的 包评论

在 MySQLdb 中,“参数化”是通过对字符串进行转义,然后将它们直接插入到查询中来实现的,而不是使用 MYSQL_STMT API。因此,Unicode 字符串在被数据库接收之前,需要经过两个中间步骤(编码字符串和转义后的编码字符串)。

所以答案是:不,它不这样做。

撰写回答