エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【PHP】PDO使ってSQL文タイポした時にExceptionを投げる【195日目】

こんな時に使う

(PDO使う時ほぼないというツッコミは置いておいて)

 $dbh->exec('CREATE TBLE Pages (id int, name nchar(255), create_date datetime)');

あ、 TABLETBLEになってる。
でもエラー出てないから気づかなかった・・・

って時に、エラーを投げてやりたい。

こうかく

PDOのオブジェクトを生成する時に、
第四引数に、 array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)を渡してやる。

$dbh = new PDO('mysql:host=mysql;dbname=dbname',
                'username',
                'password',
                array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

これで、構文間違えた時もエラーが出る。
try catchとかで、rollbackさせたい時とかどうぞ。

公式ドキュメント

PHP: PDO::__construct - Manual

ここで使うOption

PHP: 定義済み定数 - Manual