我写了一个像这样的SQL:
"select count(md5) from table_file_log where md5=\'%s\'" % my_md5
my_md5
是传递给方法的字符串。
当我使用fetchone()
时,我返回了None
。
实际上我通常更喜欢fetchall()
以避免None
返回,但我相信count()
应该(0,)
而不是None
,即使没有记录。
我添加了日志记录来打印sql并将其粘贴到mysql中并返回正确的计数。
还有一件事,在我的程序中,有数百种相同类型的sql被执行,其中一些得到了None
,其中一些得到了正确的结果,如(0,)
或(1,)
我试图在这个网站上搜索解决方案,我发现的唯一与我的问题相关的帖子是: cursor.fetchone() returns None but row in the database exists 但我不明白为什么autocommit会在那个问题上起作用。即使这是我想知道答案的答案。
我使用Python 2.7和mysql-connector,以及MyISAM作为引擎。