You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pymysql调用存储过程时,如何将None转为Null传入?

pymysql调用存储过程传入None转NULL的解决方法

你遇到的问题是因为直接将None拼接到SQL字符串中,pymysql不会解析字符串里的None,导致MySQL把它识别成了列名,从而抛出1054错误。要解决这个问题,必须使用参数化查询的方式传递参数,pymysql会自动将None转换为SQL的NULL。

正确的代码写法如下:

_exec_statement = 'call kp_get_purchase_order(%s, %s, %s)'
self.cursor.execute(_exec_statement, (None, 10, 0))
return self.cursor.fetchall()

关键说明:

  • 用%s作为参数占位符,不要直接把参数写进SQL语句里
  • 将参数以元组的形式作为execute方法的第二个参数传入
  • pymysql会自动处理类型转换:Python的None会被转换成MySQL的NULL,同时还能避免SQL注入风险

内容的提问来源于stack exchange,提问作者Masterstack8080

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:25:37