私が最初に PHP を学び始めたとき、次のようなクエリ ステートメントを書きました。
mysql_query("SELECT * FROM `table`") or die(mysql_error());
上記と同じ効果を達成するための、現在の最良の方法は何ですか?
私の理解では、クラス、関数、および一般的な OOP を備えた今日の世界では、この方法で一連のクエリを実行するのは非常に非効率的です。私たちは何を別の方法で行うべきですか?
キャッチできる例外をスローする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();