捕获mysql_query错误

cds*_*059 5 php mysql

我试图阻止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)

Mar*_*c B 6

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行,这都有效.