当我尝试使用准备好的mysqldb语句将NULL
插入字段时,我遇到了python问题。问题是python不喜欢NULL
没有引号,然后MySQL不喜欢'NULL'
引号;所以我试图找到一种方法来插入NULL
,python和MySQL都允许。这是我的情景:
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规则?
答案 0 :(得分:5)
使用None
代替NULL
sqlFailInsert = """INSERT INTO efix_headers ( PathID ) VALUES ( %s );"""
//then later in my code
failcur = self.db.query( self.sqlFailInsert, ( pathID if pathID else None ) )