カテゴリー
Linux

【phpmig】【MySQL】マイグレーション時に文字化けする時の修正方法

ポイント

  • PDO をインスタンス化する際に、文字コードを指定する。
  • PHP バージョンによって指定方法が異なることに注意

環境

  • PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)
  • mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

実践

<?php
 
use \Phpmig\Adapter;
use Pimple\Container;
 
$container = new Container();

$container['db'] = function () {
    $dbh = new PDO('mysql:dbname=phpmigdb;host=localhost;charset=utf8','phpmiguser','phpmigdbpassword',
        array(
            PDO::MYSQL_ATTR_READ_DEFAULT_FILE => 'SET NAMES utf8',
        )
    );
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $dbh;
};

// replace this with a better Phpmig\Adapter\AdapterInterface
$container['phpmig.adapter'] = new Adapter\File\Flat(__DIR__ . DIRECTORY_SEPARATOR . 'migrations/.migrations.log');
 
$container['phpmig.migrations_path'] = __DIR__ . DIRECTORY_SEPARATOR . 'migrations';
 
// You can also provide an array of migration files
// $container['phpmig.migrations'] = array_merge(
//     glob('migrations_1/*.php'),
//     glob('migrations_2/*.php')
// );
 
return $container;

おわりに

次のページが非常に参考になりました。ありがとう存じます!

以上です。

コメントを残す