防止mysql_result($ sql_result,0)抛出错误

时间:2012-02-18 22:39:25

标签: php mysql

如果$ sql_result没有结果,则会抛出错误... 如果没有行,这样做是为了防止错误的正确方法是什么..它不能在以前计算行数?

mysql_result($sql_result, 0);

对任何响应者的亲切问候...... J

4 个答案:

答案 0 :(得分:0)

if (is_resource($sql_result)) {
    $value = mysql_result($sql_result, 0);
}

答案 1 :(得分:0)

您必须先测试$sql_result

答案 2 :(得分:0)

if ($sql_result !== false             # query was successful
 && mysql_num_rows($sql_result) > 0)  # query returned rows
{
    // do your thing
}

答案 3 :(得分:0)

这是我更喜欢的方法:

$sql = "SELECT * ....";
$r = mysql_query($sql);
if (!$r) throw new Exception('Error: ' . mysql_error() . '; Attempted: ' . $sql);
if (mysql_num_rows($r) > 0) {
   //Process Result
} else {
   //Deal with an empty Result Set
}

如果mysql查询失败,我会抛出一个异常,因为在我的应用程序中,至少一个失败的sql查询是一个交易破坏者:继续正常的脚本执行不会完成任何有用的事情〜[SQL语法有错误或数据库连接问题]。在应用程序适合捕获此类问题之前,Exception会一直冒泡。

我使用特定于应用程序的异常:ExceptionMySQL,以便我可以在应用程序中更智能地捕获它:例如。

//Top Level Application
try {
   //Execute appropriate application call
} catch (ExceptionMySQL $e) {
   //Deal with a mysql exception
} catch (ExceptionPermission $e) {
  //Deal with a permission Exception
} catch (//etc. etc. etc.