当没有找到行时,MySQL SELECT语句不会停止

时间:2011-02-26 16:19:52

标签: php mysql

我希望这个MySQL查询在表中找不到匹配的ID时突然爆炸:

mysql_query("SELECT * FROM table WHERE id='1' LIMIT 1") OR die("Boom!");

没有。它只是继续处理而没有错误。

我在这里缺少什么?

4 个答案:

答案 0 :(得分:6)

如果select语句没有找到任何行,它就不会失败 - 它只返回一个空的结果集。

您可以查看mysql_num_rows以查看是否找到了任何行。

答案 1 :(得分:1)

sql语句不会失败,它实际上什么都不返回。 看这里How does "do something OR DIE()" work in PHP?

答案 2 :(得分:1)

当您在其中发出语法或逻辑错误时,查询仅“失败”。

不返回任何行的查询仍然是有效查询。检查它返回的结果集,看看你得到了多少结果:在你的情况下,检查是否有“0”。

答案 3 :(得分:-1)

使用mysql command line client从命令行运行查询,以确保表格没有损坏。