設定
FuelPHP でDBへの接続設定は、
APPPATH/config/db.php
APPPATH/config/production/db.php
APPPATH/config/development/db.php
にて行います。
FuelPHPのドキュメント によれば、
// PDO ドライバで PostgreSQL を使う設定
'production' => array(
'type' => 'pdo',
'connection' => array(
'dsn' => 'pgsql:host=localhost;dbname=fuel_db',
'username' => 'your_username',
'password' => 'y0uR_p@ssW0rd',
'persistent' => false,
'compress' => false,
),
'identifier' => '"',
'table_prefix' => '',
'charset' => 'utf8',
'enable_cache' => true,
'profiling' => false,
),
このように設定するとありますが、charset の指定があると、
Fuel\Core\Database_Exception [ 7 ]:
SQLSTATE[08006] [7] invalid connection option "charset"
とエラーになる。
そこで、上記の配列から charset の指定を削除しても、依然としてエラーに。
これは、
COREPATH/config/db.php
にもcharsetの設定があるため。
COREPATH 以下のファイルを編集するのは得策ではないので、
APPPATH 以下の設定ファイルで、
'charset' => NULL,
と上書きして、万事解決。
DSNに options='--client_encoding=UTF8' を渡しておくと、安心かもしれない。