【Laravel】クエリ実行前にMySQLのDBコネクションのPDOにsetAttributeする。


メモとして残します。

■やり方

下記の例では現在のDBコネクションにPDO::ATTR_EMULATE_PREPARESをtrueでセットしています。

(\DB::connection()->getPdo())->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

■余談

laravelではPDO::ATTR_EMULATE_PREPARESはデフォルトFalseですが、
LOAD DATA LOCAL INFILEステートメントを実行するときにエラーになってしまうため、PDO::ATTR_EMULATE_PREPARESをTrueにしてやる必要があります。
しかし、configのdatabase.phpで常にtrueにするのはさすがにちょっと、、、
と、なったなっため、瞬間的にTrueにすることで解決しました。