14

私が最初に PHP を学び始めたとき、次のようなクエリ ステートメントを書きました。

mysql_query("SELECT * FROM `table`") or die(mysql_error());

上記と同じ効果を達成するための、現在の最良の方法は何ですか?

私の理解では、クラス、関数、および一般的な OOP を備えた今日の世界では、この方法で一連のクエリを実行するのは非常に非効率的です。私たちは何を別の方法で行うべきですか?

4

1 に答える 1

19

キャッチできる例外をスローするPDOを使用する必要があります。キャッチされない場合は、die()と同じようにスクリプトを強制終了します。

$db = new \PDO(
    'mysql:dbname=database;host=localhost',
    'root',
    '',
    array(
        \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION
    )
);

$db->query('SELECT INVALID FOO'); // Exception!!!

this_never_gets_run();
于 2011-12-29T17:50:11.980 に答える