niwacchi.log

niwacchiのログ。

MySQL用のDB接続クラス

 PEAR::DBを使わない版で、とりあえず、基本的な関数を実装したクラスを作成してみた。使いながら変えていくつもり。
(MyDBConfig.php)

<?php
define("DB_SERVER",""); // サーバ
define("DB_NAME",""); // データベース
define("DB_USER",""); // ユーザ
define("DB_PASSWD","");  // パスワード
define("DB_DEBUG",FALSE); // デバッグモード
define("DB_MODE","");  // 何かのモード
?>

(MyDBAccess.php)

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

class MyDBAccess {

    var $connect;
    var $result;

    // コンストラクタ
    function MyDBAccess() {
        $this->connect = mysql_connect(DB_SERVER,DB_USER,DB_PASSWD);
        if(!$this->connect) {
            die("Can not connect ".DB_SERVER." : ".mysql_error());
        }

        if(!mysql_select_db(DB_NAME)) {
            die("Can not use ".DB_NAME." : ".mysql_error());
        }
    }

    // 切断
    function close() {
        mysql_close($this->connect);
    }
    
    // クエリ送信
    function query($sql){
        $ret = mysql_query($sql,$this->connect);
        if(!$ret){
            die("Invalid query : ".mysql_error());
        }
        return $ret;
    }
    
    // フェッチ
    function fetch($result){
        return mysql_fetch_array($result);
    }
    
    // クエリ送信とフェッチ
    function query_fetch($sql){
        if(!is_null($sql)){
            $this->result = $this->query($sql);
            if(!$this->result){
                return FALSE;
            }
        }

        return $this->fetch($this->result);
    }

    // 実行
    function execute($sql){
        $this->result = mysql_query($sql,$this->connect);
        return $this->result;
    }

    // トランザクション開始
    function tran_begin(){
        $ret = $this->query('begin');
    }

    // ロールバック
    function rollback(){
        $ret = $this->query('rollback');
    }

    // コミット
    function commit(){
        $ret = $this->query('commit');
        if(!$ret){
            die("Con not commit : ".mysql_error());
            $this->rollback();
        }
        return $ret;
    }
}
?>