再次回来,感谢上次的所有帮助。我正在运行此查询:
$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();
我收到错误消息2:但没有打印出mysql_error。 var_dump($ query)打印出一个在phpMyAdmin中无错误运行的查询。 var_dump(mysql_num_rows($ result))没有打印。
答案 0 :(得分:2)
在查询字段中应用单引号
$query = "SELECT * FROM event where evLoc = '".$loc."' AND evChar = '".$char."'";
你也可以用简短的形式写这些。像
$query = "SELECT * FROM event where evLoc = '$loc' AND evChar = '$char'";
接下来,您可能想要更改获取部分。
while($row = mysql_fetch_assoc($result)) {
....
}
使用此功能时,您将避免在未返回任何行时收到的错误。
答案 1 :(得分:2)
这是太谨慎的情况,并在不属于的地方应用错误检查。
请勿与提取电话合作调用die()
。当没有可用的行时,fetch有意返回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
}
答案 2 :(得分:2)
显然,您的请求返回0行,mysql_fetch_array返回FALSE