没有结果,带有LIMIT 1的MySQL SELECT *是否返回FALSE?

时间:2011-01-27 20:07:52

标签: php mysql

我一直在研究数据库包装器类,并且服务器偶尔会消失... MySQL的典型2006错误消息。我已经包含了处理重新连接到数据库的逻辑,这似乎正在起作用。对我来说有趣的是这个查询:

SELECT id FROM pixel WHERE (id = 522574) AND (advertiser_entity_id = 45574) LIMIT 1

在PHPMYADMIN中执行该行会产生一个空集。通过数据库类执行该操作将返回false。

有没有人见过这种行为?没有mysql_errorno或错误消息回来。

$result = mysql_query($query, $this->database_connection); 
if (false === $result) { 
// handle error here 
} 
else { return $result; } 

1 个答案:

答案 0 :(得分:11)

找不到匹配的行并不是错误。如果它没有找到满足WHERE条件的任何记录,那不是错误,它只返回一个空结果。如果您正在编写自己的数据库层,它也不应该将其视为错误 - 查询运行得很好,它只是没有找到任何匹配。

如果你问,为什么你的代码返回false,可能只是因为通常语言在布尔上下文中将零值或空值视为“false”。