PEAR::DBでUTF-8のMySQLを使う

  • このエントリーをはてなブックマークに追加

コネクションストリングにオプションで書けば出来んじゃないかと思ったのですが、UTF-8使う場合はqueryメソッドでSET NAMESを書くみたいです。。。

<?php
require_once('DB.php');

class DatabaseConnection {

    var $_handle = null;

    function &get () {
        static $db;
        if (!isset($db)) {
            $db = new DatabaseConnection();
        }
        return $db;
    }

    function DatabaseConnection () {
        $phptype = $GLOBALS&#91;'DSN'&#93;&#91;'phptype'&#93;;
        $hostspec = $GLOBALS&#91;'DSN'&#93;&#91;'hostspec'&#93;;
        $database = $GLOBALS&#91;'DSN'&#93;&#91;'database'&#93;;
        $username = $GLOBALS&#91;'DSN'&#93;&#91;'username'&#93;;
        $password = $GLOBALS&#91;'DSN'&#93;&#91;'password'&#93;;

        $dsn = "$phptype://$username:$password@$hostspec/$database";
        $this->_handle = DB::Connect($dsn);
        if (DB::isError($this->_handle)) {
            die($this->_handle->getMessage());
        }
        $this->_handle->setFetchMode(DB_FETCHMODE_ASSOC);
        $this->_handle->query("SET NAMES 'utf8'");
    }

    function handle () {
        return $this->_handle;
    }
}

いまだに、PEAR::DB使ってるのにびっくりしますが | |д・) ソォーッ…

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

ads

コメントを残す

*