繁体   English   中英

PHP mysql error_log并立即返回值

[英]PHP mysql error_log and immediately return a value

我正在编写一个查询数据库的函数,如果mysql查询由于某种原因而出错,我希望我的函数返回一个表示查询失败的值(在这种情况下为-1),而不是全部消失脚本。

通常我只使用这种结构:

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

但是在这种情况下,我不想死,但是我确实需要突破该功能,并有某种方式告诉调用函数出了点问题,同时仍然能够手动检查日志以获取源代码。错误。 有没有办法做到这一点? 半伪代码如下所示:

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

但是我已经尝试了几种变体,并且(正如人们可能期望的那样)它们不起作用。

有什么建议么? 谢谢。

尝试这个:

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

该语句中的or是PHP的逻辑运算符之一 ,当这样使用时,如果第一个语句由于短路评估而失败,它将执行第二个语句。 由于正在执行赋值操作,因此您将无法return该语句;如果执行两个语句,您将无法向$result变量返回正确的值。

你可以做类似的事情

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

但这并不比您能做的任何其他事情短。

使用类似@Kolink提供的表达式来执行所需的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM