2013-08-25

MySQLiクラスをラップする

<?php
/**
 *  MySQLiクラスの拡張
 */
class MySQLiDB extends mysqli {

    private $_host;
    private $_user;
    private $_pass;
    private $_db;
    private $_char;
    private $_timeout;

    public function __construct($host, $user, $pass, $db, $char, $timeout) {

        parent::init();

        //  AUTOCOMMIT オフ
        if (!parent::options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT = 0")) {
            die("Setting MYSQLI_INIT_COMMAND failed");
        }

        //  接続のタイムアウト 設定
        if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, $timeout)) {
            die("Setting MYSQLI_OPT_CONNECT_TIMEOUT failed");
        }

        //  接続
        if (!parent::real_connect($host, $user, $pass, $db)) {
            die("Connect Error (" . mysqli_connect_errno() . ") " . mysqli_connect_error());
        }

        //  デフォルトのクライアント文字エンコーディング 設定
        if (!parent::set_charset($char)) {
            die("Error loading character set {$char}: %s\n" . $mysqli->error);
        }

        //  ローカル変数に保存
        $this->_host = $host;
        $this->_user = $user;
        $this->_pass = $pass;
        $this->_db   = $db;
        $this->_char = $char;
        $this->_timeout = $timeout;

    }
}

0 件のコメント:

コメントを投稿

そもそも添付ファイル名の規約ってRFCでどうなってるの?

Outlookから送ったメールの添付ファイル名が、iPhoneで「 =?utf-8?Q?...?= 」と無残に文字化けしてしまう現象。その元凶を紐解くと、1990年代から続く 「RFC規格のねじれ」 と、Microsoftによる 「独自の割り切り」 という深い闇に突き当...