我试图阻止mysql_query错误输出到我的表单上.目前,如果找不到位置,我收到错误
"警告:mysql_result()[function.mysql-result]:无法跳转到MySQL结果索引11的第0行"
我试图捕获此错误,而是将$ location变量指定为未找到.尝试此操作的代码如下,我做错了什么?
谢谢!
$query3 = "SELECT `location` FROM location WHERE vin = '$vin' LIMIT 1";
$result3 = mysql_query($query3);
if (!mysql_result($result3,0)) {
$location = "Not found";
} else $location = mysql_result($result3,0,0);
Run Code Online (Sandbox Code Playgroud)
mysql_result()一般不应该使用.你最好用以下的东西:
$result3 = mysql_query($query3) or die(mysql_error());
if (mysql_numrows($result3) == 0) then
$location = "not found";
} else {
$row = mysql_fetch_array($result3);
$location = $row[0];
}
Run Code Online (Sandbox Code Playgroud)
您的错误是由查询返回没有行的事实引起的 - 例如没有匹配.然后,您尝试检索该结果集的第一行中的第一个字段,该行不存在.检查返回行的数量mysql_numrows()是更安全的,因为无论查询什么都没找到或者是bajillion行,这都有效.