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

Mik*_*ike 1 php mysql

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

SELECT id FROM pixel WHERE (id = 522574) AND (advertiser_entity_id = 45574) LIMIT 1
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mik*_*ike 11

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

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