0

PHPで作成したWebアプリケーションがあります。私は単一のクラスを使用して、このアプリが行うほとんどすべてを処理します。データベース名など、クラスの前にいくつかのことを事前に定義します。私が望んでいたのは、mysql_error()の定義を設定できることです。

したがって、SQLクエリを実行してエラーのdie()を追加するときは、「エラーが発生しました!」と出力する必要があります。アプリが本番環境で実行されているが、1つのdefineを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への移行を検討する必要があります。
  • 実際のWebページでの使用die()(またはmy_die()そのことについて)はあまりユーザーフレンドリーではありません。代替案を検討してください
于 2012-11-28T19:52:36.173 に答える
0

2つのこと:

  • 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 に答える