我可以使用PHP define()函数来更改多个die(mysql_error())输出吗?

时间:2012-11-28 19:49:08

标签: php mysql

我有一个用PHP编写的Web应用程序。我使用一个类来处理这个应用程序所做的几乎所有事情。我在类之前预定义了一些东西,比如数据库名。我希望的是我可以为mysql_error()设置一个定义。

因此,当我运行SQL查询并添加错误的die()时,我希望它输出“发生错误!”如果应用程序在生产环境中运行,但我可以从define(“DIEOUTPUT”,“发生错误!”)更改1 define来定义(“DIEOUTPUT”,mysql_error());

我的die()函数看起来像:die(DIEOUTPUT);

这可能吗?

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。

相反,您可以创建自己的die()版本:

function my_die(){
    if($is_production_environement) {
        die("An error has occured");
    }
    else{
        var_dump(mysql_error());
    }
}

注意

  • 您应该考虑从mysql_*功能转移到PDO或mysqli。
  • 在真实网页上使用die()(或my_die())对用户不太友好,请考虑替代方案

答案 1 :(得分:0)

两件事:

  • 您不应该使用mysql_函数,更喜欢mysqli_函数,它们更安全,更高效并且可以访问新功能
  • php中的常量必须是静态定义的。您不能将define与函数调用一起使用。

使用mysqli的代码应如下所示:

mysqli_query('your query') or exit($isProduction?"An error occured":mysqli_error());

根据您使用常数的愿望,您可以使用

define(PRODUCTION,true);//false if dev
mysqli_query('your query') or exit(PRODUCTION?"An error occured":mysqli_error());