首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用准备好的语句插入NULL的python mysqldb

问使用准备好的语句插入NULL的python mysqldb
EN

Stack Overflow用户
提问于 2013-08-05 18:22:02
回答 1查看 4.9K关注 0票数 1

当我试图使用准备好的mysqldb语句将NULL插入到字段时,我遇到了python的问题。问题是,python不喜欢没有引号的NULL,然后MySQL不喜欢带引号的'NULL';所以我试图找到一种方法来插入NULL,无论是python还是MySQL,都将允许。下面是我的场景:

代码语言:javascript
复制
    sqlFailInsert = """INSERT INTO efix_headers ( PathID ) VALUES ( %s );"""
    //then later in my code
    failcur = self.db.query( self.sqlFailInsert, ( pathID if pathID else NULL ) )

这将生成一个python错误:global name 'NULL' is not defined,但当我使用:pathID if pathID else 'NULL' MySQL将它作为字符串对待(顺便说一句,pathID字段是一个整数字段)并输入值的0 (如果您在int字段中输入一个字符串的话)。

因此,我的问题是,如何使用准备好的语句将NULL插入int字段,而不违反python规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-05 18:31:55

使用None而不是NULL

代码语言:javascript
复制
sqlFailInsert = """INSERT INTO efix_headers ( PathID ) VALUES ( %s );"""
//then later in my code
failcur = self.db.query( self.sqlFailInsert, ( pathID if pathID else None ) )
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18065036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档