mysql查询在不应该返回时返回true

时间:2013-02-09 12:35:48

标签: php mysql

如果$key不是数据库的key_code列中的值,那么这并不像我预期的那样死亡。相反,它只是继续。我可能错过了一些非常简单的事情。

$key = $_GET['k'];

$keycheck = mysql_query("SELECT * FROM ib_dist WHERE key_code = '$key'");

if (!$keycheck) {

   die("A database error has occured.");

} else {

2 个答案:

答案 0 :(得分:2)

mysql_query根据查询是否成功执行返回资源或false。它不以任何方式表示返回了多少行或查询是否执行了任何操作,只是表示它是否成功执行。

检查返回的结果数量或分别评估返回的结果。

答案 1 :(得分:0)

尝试检查找到的行数。

$key = $_GET['k'];

$result = mysql_query("SELECT * FROM ib_dist WHERE key_code = '$key'");

if (!$result) {

   die("A database error has occured.");

} else if (0 == mysql_num_rows($result)) {
    // unknown key action
} else {
    // known key action
}