3

関数を使用してphpでデータベース接続を確立しています

$DBConn = mysql_connect ("localhost" , "testuser" , "test123")

使用しているコネクションの解放時

if( is_resource($DBConn) )

接続が現在設定されているかどうかを確認します。これを行うのが効率的か、またはこのように接続を確認する必要があるか知りたい

if( $DBConn )

両方のステートメントを使用することの長所と短所を知りたいです。

4

3 に答える 3

1

まず第一に、もはやmysql_xxx関数を使用するべきではありません。PDO / mysqli を使用してステートメントを準備することなどの利点について説明している記事がたくさんあります。

falseマニュアルを見ると、リンク識別子または失敗時に返すと記載されています。この識別子が正確に何であるかについて仮定するべきではありません。通常はリソースですが、オブジェクトまたは整数である可能性もあります。より簡単な条件を単純に否定します。

if (false !== $DBConn) {
    // do something with the database
}

または、代わりに:

if (false === $DBConn) {
    throw new Exception("Could not connect to database");
}
// do something with the database

編集

if ($DBConn) { ... }基本的に 0、false、null、""、空の配列の逆なので、使用しても問題ありません。

于 2012-10-06T05:39:10.873 に答える
0

接続またはクエリが成功すると、リソース識別子が返されます。したがって、関数is_resourceは変数をリソースまたはfalseとして識別します。

また、If式がと評価された場合TRUE、PHPはステートメントを実行し、と評価された場合、実行されFALSEません。

于 2012-09-14T11:46:17.973 に答える
0

どちらも本質的に同じですが、呼び出されたis_resourceメソッドには関数を呼び出すオーバーヘッドがあると主張する人もいるかもしれませんが、ifこれも決定する必要があり、実質的に両方に違いはありません。あなたのコーディングスタイルと読みやすさがすべてだと思います

于 2012-09-14T11:51:36.533 に答える