php でDB接続(のみ) ver mysqli

かしこ 22views 更新:2016年11月9日

DB 接続のみ作成してみました。

select とかは随時。。。

■ test.php

<?php
class db_model
{
    const CN_HOST_NAME = 'localhost' ; /** ホスト名 */
    const CN_USER_NAME = 'root' ;      /** ユーザ名 */
    const CN_PASSWORD  = '' ;          /** パスワード */
    const CN_DB_NAME   = '' ;          /** データベース名 */

    public $db_res ; /** 接続しているかどうかのフラグ(外部ファイル用) */
    private $mysqli ;

    /**
     * 初期処理
     * DB接続
     */
    public function __construct()
    {
        error_reporting(E_ALL) ;
        mb_internal_encoding('UTF-8') ;
        mysqli_report(MYSQLI_REPORT_STRICT) ;
        try
        {
            /** mysqli 接続 */
            $this->mysqli = new mysqli(
                  self::CN_HOST_NAME
                , self::CN_USER_NAME
                , self::CN_PASSWORD
                , self::CN_DB_NAME
            ) ;
            /** デフォルト文字セットを設定 */
            $this->mysqli->set_charset('utf8') ;
            $this->db_res = true ;
        }
        catch(mysqli_sql_exception $er)
        {
            /** エラー時はログに書き込む */
            $this->_db_error_log($er) ;
            $this->db_res = false ;
        }
    }

    /**
     * DB接続のクローズ
     */
    public function db_close()
    {
        if($this->db_res === true)
        {
            $this->db_res = false ;
            $this->mysqli->close() ;
        }
    }

    /**
     * エラーメッセージをログファイルに書き込む
     * @param $message : エラーメッセージ
     */
    private function _db_error_log($message)
    {
        $dir_path = './log/sql_error/' ;
        if(is_dir($dir_path) === false)
        {
            mkdir($dir_path, 0644, true) ;
        }
        $file_name = $dir_path.date('Ymd').'.log' ;
        file_put_contents($file_name, date('H:i:s').' -> '.$message."\n", FILE_APPEND) ;
    }
}

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません