fuel/app/config/db.php にてデータベース接続を定義していますが、こんなふうに変わりました。 正直言って、なんでこうなのかわからないけど。
v1.7.1のとき
return array( 'active' => 'local', 'local' => array( 'type' => 'pdo', 'connection' => array( 'dsn' => 'pgsql:host=localhost;port=5432;dbname=your_dbname', 'username' => 'your_username', 'password' => 'your_password', 'persistent' => false, ), 'identifier' => '"', 'table_prefix' => '', //'charset' => 'utf8', 'enable_cache' => true, 'profiling' => false, ) );
v1.7.2のとき
return array( 'active' => 'local', 'local' => array( 'type' => 'pdo', 'connection' => array( 'dsn' => "pgsql:host=localhost;port=5432;dbname=your_dbname;options='--client_encoding=UTF8'", 'username' => 'your_username', 'password' => 'your_password', 'persistent' => false, ), 'identifier' => '"', 'table_prefix' => '', //'charset' => 'utf8', 'enable_cache' => true, 'profiling' => false, ) );
変更点
charsetでエンコーディングを与えていたものが使えなくなり、dsnにてoptions指定を追加する必要があり、上記のような書き方になりました。
なんでそうなったのかは、下記参考記事が良かったです。
「FuelPHP で PDOによるPostgreSQL接続の罠 - Qiita」
「PHPでデータベースに接続するときのまとめ - Qiita」
どちらでも、《DSNに options='--client_encoding=UTF8'" を含める》話が書いてあります。