0

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

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

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

这可能吗?

4

2 回答 2

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()就此而言)不是太用户友好,请考虑替代方案
于 2012-11-28T19:52:36.173 回答
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());
于 2012-11-28T19:54:46.143 回答