ホームページ  >  記事  >  バックエンド開発  >  php MYSQL データ操作 class_PHP チュートリアル

php MYSQL データ操作 class_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:10:191059ブラウズ

mysqlデータベース操作クラス、みんなで共有


[php]

/**
 *db.class.php データベースオブジェクトを作成します
 *
 *@著者 Dick 417@668x.net
 *@copyright http://blog.csdn.net/haibrother
 *
 **/

クラス Dick_Db{
パブリック $db_host = '' // ホストアドレス
; パブリック $db_username = '' //データベース アカウント
; Public $db_password = '' //データベースパスワード
; Public $db_name = '' //データベース名
; Public $link = '' //データベース接続オブジェクト
; Public $debug = 1; //デバッグを有効にするかどうか、デフォルトは有効です
Public $pconnect = 0; //長い接続を有効にするかどうか、デフォルトはクローズです
Public $log_file = 'log/';//ログファイルディレクトリ

/**
*初期化情報
*@paramオブジェクト
**/
パブリック関数 __construct($config=''){
If(!is_object($config)){
$this->halt('データベース設定は間違っていません。確認してください!'); }
If(!empty($config)){
                                                                                                                  $this->db_username = $config->username; $this->db_password = $config->password; $ this-> db_name }
$this->connect(); }

/**
* リンクを取得します
**/
パブリック関数 connect(){
$connect = $this->pconnect === 1?'mysql_pconnect':'mysql_connect'; If(!$this->link = @$connect($this->db_host,$this->db_username,$this->db_password)){
$this->halt('データベースに接続できません!'); }
mysql_set_charset('utf8',$this->link); mysql_select_db($this->db_name,$this->リンク); }


/**
      *クエリ
      *@param string $sql
      *ブール値を返します
      **/
パブリック関数クエリ($sql){
If(!$query = mysql_query($sql,$this->link)){
$message = date('Y-m-d H:i:s') '.$sql; $this->write_log($message); $this->halt('SQL エラー、確認してください!',$sql); }
戻り $query
}

/**
*
*@param string $sql
      *@param string $type
      * mysql_fetch_assoc、mysql_fetch_array、mysql_fetch_row、mysql_affected_rows
      *@配列を返す
      */
     パブリック関数 fetch($sql,$type='assoc'){
        $fetch_type = 'mysql_fetch_'.$type; 
        $query = $this->query($sql); 
        $result = $fetch_type($query); 
        $this->free_result($query); 
        $this->close(); 
        $result を返します。 
     }
 
     /**
      *@param string $sql
      *@配列を返す
      **/
     パブリック関数 DickFetch($sql,$type='assoc'){
        $fetch_type = 'mysql_fetch_'.$type; 
        $query = $this->query($sql); 
        $rows=array(); 
        while ($row=$fetch_type($query)) {
            $rows[]=$row; 
        }
        $this->free_result($query); 
        $this->close(); 
        $rows を返します。 
     }
 
     /**
*挿入の最後のIDを取得します
*@param string $sql
**/
     パブリック関数 insert_id(){
        return mysql_insert_id($this->link); 
     }
 
     /**
*データベースオブジェクトリソースを解放します
**/
     パブリック関数 free_result($query){
        mysql_free_result($query) を返します。 
     }
 
 
     /**
*データベース接続を閉じる
**/
     パブリック関数 close(){
        if($this->pconnect === 0) return mysql_close($this->link); 
     }
      
 
 
    /**
* 整数は安全に処理され、0 以上の整数のみが返されます
*@param int
*@return int
**/
    パブリック関数 numeric(& $variint){
        if (!isset ($variint))
            0を返します。 
        if (!is_numeric($variint))
            0を返します。 
 
        //首字符0处理
        $str_len = strlen($variint); 
        for ($i = 0; $i             if ($variint[$i] != '0')
                壊す; 
        }
        if ($i > 0 && $variint > 0) {
            $variint = substr($variint, $i, $str_len); 
            $str_len = strlen($variint); 
        }
 
        // デジタル安全处理
        if ($str_len > 0) {
            if (!preg_match("/^[0-9]+$/", $variint)) {
                0を返します。 
            } その他 {
                $variint = substr($variint, 0, 10); 
                //互換MYSQL中INT無記号最大值4294967295
                $variint = ($variint > 4294967295) ? 4294967295 : $variint; 
                $variint を返します。 
            }
        } その他 {
            0を返します。 
        }
    }
 
    /**
*mysqlエラーを返す
**/
    パブリック関数 error() {
        return (($this->link) ? mysql_error($this->link) : mysql_error()); 
    }
 
 
    /**
*mysql errno を返す
**/
    パブリック関数 errno() {
        return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); 
    }
 
    /**
*SQLエラーログに書き込む
*@パラメータ文字列
*@param文字列型
**/
    public function write_log($message='',$type='date'){
        if(空($message)) falseを返します; 
        if(!in_array($type, array('date','month')))return false; 
        if(!is_dir($this->log_file)){
            mkdir($this->log_file); 
        }
        スイッチ ($type) {
            ケース「月」:
                $file = $this->log_file.date('Y-m').'.log'; 
                壊す; 
             
            デフォルト:
                $file = $this->log_file.date('Y-m-d').'.log'; 
                壊す; 
        }
        if(!file_exists($file)){
            file_put_contents($file,''); 
        }
        if(!is_readable($file)){
            $this->halt($file.'- システム無权制限读操作!');    
        }
        if(!is_writable($file)){
            $this->halt($file.'-系统無权制限写操作!'); 
        }
        $contents = file_get_contents($file); 
        $add_message = ' -エラー:'.$this->error().'   -Errno:'.$this->errno(); 
        file_put_contents($file, $contents.$message.$add_message."n"); 
         
    }
 
 
    /**
* プログラムを終了します
*@param str $message
*@return print
**/
     パブリック関数 halt($message='',$sql=''){
        if($this->debug===1){
            $error_get_last = error_get_last(); 
            if($message) {
                $errmsg = "システム情報: $messagenn"; 
            }
            $errmsg .= "時刻: ".date('Y-m-d H:i:s')."n"; 
            $errmsg .= "スクリプト: ".$error_get_last['file']."nn"; 
            if($sql) {
                $errmsg .= "SQL: ".htmlspecialchars($sql)."n"; 
            }
            $errmsg .= "エラー: ".$this->error()."n"; 
            $errmsg .= "Errno.: ".$this->errno(); 
 
            echo "n"; 
            echo "

"; 
            エコー nl2br($errmsg); 
            出口(); 
        }
         
     }
 
     /**
*プログラムテスト印刷
*@パラメータ文字列
*@return print
**/
     パブリック関数 prf($param){
        echo '

'; <br>
        print_r($param); <br>
        echo '
'; 
        出口; 
     }
 
 
}
#################################################
####测试程序
####
################################################
エラー報告(E_ALL); 
header('Content-type:text/html;charset=utf-8'); 
date_default_timezone_set('アジア/上海'); 
$config = array(
    「ホスト」 => 「192.168.2.1」、
    'ユーザー名' => 「ルート」、
    'パスワード' => ”、
    「データベース名」 => 「テスト」、
    ); 
$db = 新しい Dick_Db((オブジェクト)$config); 
$db ->pconnect = 1; 
$sql = 'SELECT * FROM t1'; 
$db->prf($db->dickFetch($sql)); 
 
?> 

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477537.html技術記事 mysql データベース操作クラス、みんなで共有 [php] ?php /***db.class.php データベース オブジェクトの作成 * *@author Dick 417@668x.net *@copyright http://blog.csdn.net/haibrother * **/ class D...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。