2012-07-14 22 views
2

我正在写我的查询数据库中的一个功能,如果MySQL查询错误出来出于某种原因,我想我的函数返回一个值(在这种情况下,-1)表明查询失败,而不是在整个脚本之外。PHP MySQL的Error_log和立即返回一个值

通常我只是用这个结构:

$result = mysql_query($sql) or die([some error information]);

但在这种情况下,我不想死,但我确实需要打出来的功能,并具有一定的方式告诉调用功能出现了错误,同时仍然能够手动检查日志为错误的来源。有没有办法做到这一点?半伪代码看起来是这样的:

$result = mysql_query($sql) or { 
    error_log([some error information]); 
    return -1; 
} 

但我试过一对夫妇和变化(如人们所预料的),他们不工作。

有什么建议吗?谢谢。

回答

5

试试这个:

if(!($result = mysql_query($sql))) { 
    error_log(...); 
    return -1; 
} 
+0

啊!我从来没有想过像对待条件评估那样对待查询。非常有意义。感谢Kolink,这很好。 – Murdock 2012-07-14 01:29:59

1

在声明中or是一个PHP的logical operators这就像在使用时,如果将第一个因short circuit evaluation未能执行第二条语句。您将无法return该语句,因为你正在做的任务,如果你执行两个语句,你将不能够适当的值返回$result变量。

你可以做类似

$result = false or (error_log('message') && ($result = -1)); 
if ($result === -1) return $result; 

但是这并不比其他任何你可以做的更短。

使用像什么@Kolink提供给你想要的东西表达。

+0

感谢您的更深层次的解释,引来。提供一些有用的理解。 – Murdock 2012-07-14 01:30:21