1

当我尝试NULL使用准备好的 mysqldb 语句插入字段时,我遇到了 python 问题。问题是python不喜欢NULL没有引号,然后MySQL不喜欢'NULL'带引号;所以我试图找到一种插入NULLpython和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 规则?

4

1 回答 1

7

使用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 ) )
于 2013-08-05T18:31:55.360 回答