又回来了,感谢上次大家的帮助。我正在运行这个查询:
$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/