PHP、MYSQL - 查询失败但未出现错误消息

标签 php mysql

又回来了,感谢上次大家的帮助。我正在运行这个查询:

 $query = "SELECT * FROM event where evLoc = ".$loc." AND evChar = ".$char;
 var_dump($query);
 $result = mysql_query($query, $con) or die('Error 1:'.mysql_error());
 if ($result) {
    $row = mysql_fetch_array($result) or die('Error 2:'.mysql_error());
    var_dump(mysql_num_rows($result));
    exit();

我收到消息 Error 2: 但没有打印出 mysql_error。 var_dump($query) 打印出一个在 phpMyAdmin 中运行没有错误的查询。 var_dump(mysql_num_rows($result)) 没有打印。

最佳答案

这是一个过于谨慎并在不属于它的地方应用错误检查的情况。

不要与 fetch 调用一起调用 die()。当没有可用的行时,提取有意返回 FALSE,因此您没有错误,只是没有行。

// No rows were returned, wich is FALSE
$row = mysql_fetch_array($result) or die('Error 2:'.mysql_error());

相反,不要在这里调用 die():

$row = mysql_fetch_array($result);
if ($row) {
  // you got something
}

或者这样:

if ($row = mysql_fetch_array($result)) {
  // you got something.
}

如果希望返回多行,则在 while 循环中获取。

while ($row = mysql_fetch_array($result)) {
  // loops until you're out of rows
  // or not at all if you have no rows
}

关于PHP、MYSQL - 查询失败但未出现错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124213/

相关文章:

PHP:不区分大小写的参数

javascript - JQuery即时搜索: how to make a second post request.以及如何使用回车键进行搜索

mysql - 使用 Hibernate 在 MySQL 时间戳列中存储毫秒数

MySQL-日期-时间戳

php - 在cakephp中插入数据

php - 动态参数的 SQL 注入(inject)预防

javascript - 在 Codeigniter 中将输出限制为仅 3 行

php - Symfony2,如何改变环境?

php - 用 Flash 和 PHP 编写视频聊天小部件

php - 结合两个mysql查询