当我试图使用准备好的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规则?
发布于 2013-08-05 18:31:55
使用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 ) )https://stackoverflow.com/questions/18065036
复制相似问题