首页 > 代码库 > 简单的MySQLDB类

简单的MySQLDB类

  1 <?php  2 header(‘Content-Type:text/html; charset=utf-8‘);  3 error_reporting(E_ALL ^ E_DEPRECATED);  4 //数据库操作类  5 class MySQLDB{  6   7     //属性--必要的信息  8     private $_host;   //主机  9     private $_port;   //端口 10     private $_user;   //用户名 11     private $_pass;   //密码 12     private $_charset;//字符集 13     private $_dbname; //默认数据库 14  15     //属性--运行时生成 16     public $_link;   //mysql link 资源 17  18     private static $_instance; 19     public static function getInstance($params=array()){ 20         if(!self::$_instance instanceof self){ 21             self::$_instance = new self($params); 22         } 23         return self::$_instance; 24     } 25     private function __clone(){} 26  27     /* 28      * 构造方法 29      * @param $param=array() array 关联数组 需要六个属性值 30      */ 31     private function __construct($params=array()){ 32         //初始化属性 33         $this->_initParams($params); 34         //连接数据库服务器 35         $this->_connect(); 36         //设定字符集 37         $this->_setCharset(); 38         //选择默认数据 39         $this->_selectDB(); 40     } 41  42     /* 43      * 初始化数据库服务器参数 44      */ 45     private function _initParams($params){ 46         $this->_host = isset($params[‘host‘])?$params[‘host‘]:‘127.0.0.1‘;       //本机 47         $this->_port = isset($params[‘port‘])?$params[‘port‘]:‘3306‘;            //3306 48         $this->_user = isset($params[‘user‘])?$params[‘user‘]:‘‘;                //匿名用户 49         $this->_pass = isset($params[‘pass‘])?$params[‘pass‘]:‘‘;                //没有密码 50         $this->_charset = isset($params[‘charset‘])?$params[‘charset‘]:‘utf8‘;   //utf8 51         $this->_dbname = isset($params[‘dbname‘])?$params[‘dbname‘]:‘‘;          //表示不用选择默认数据库 52     } 53  54  55     /* 56      * 连接数据库服务器 57      */ 58     private function _connect(){ 59         //127.0.0.1:3306 60         if($link = mysql_connect("$this->_host:$this->_port",$this->_user,$this->_pass)){ 61             //成功 62             $this->_link = $link; 63         }else{ 64             //失败,强制脚本结束,提示错误信息 65             die("-_-!,连接数据库服务器失败,请确定连接选项"); 66         } 67     } 68  69     /* 70      * 设定指定字符集 71      */ 72     private function _setCharset(){ 73         $sql = "set names $this->_charset"; 74         if(mysql_query($sql,$this->_link)){ 75             //成功 76         }else{ 77             //执行失败给出错误信息 78             echo ‘-_-!SQL执行失败<br/>‘; 79             echo ‘错误的SQL为:‘,$sql,‘<br/>‘; 80             echo ‘错误代码为:‘,mysql_errno($this->_link),‘<br/>‘; 81             echo ‘错误信息为:‘,mysql_error($this->_link); 82             die; 83         } 84     } 85  86     /* 87      * 选择默认数据库 88      * 如果没有指定,则不选择 89      */ 90     private function _selectDB(){ 91         //判断是否需要选择默认数据库,表示不需要,防止为0 92         if($this->_dbname !== ‘‘){ 93             //不为空,才选择数据库 94             $sql = "use `$this->_dbname`"; 95             if(mysql_query($sql,$this->_link)){ 96                 //成功 97             }else{ 98                 //执行失败给出错误信息 99                 echo ‘-_-!SQL执行失败<br/>‘;100                 echo ‘错误的SQL为:‘,$sql,‘<br/>‘;101                 echo ‘错误代码为:‘,mysql_errno($this->_link),‘<br/>‘;102                 echo ‘错误信息为:‘,mysql_error($this->_link);103                 die;104             }105         }106     }107 108 109 110     /**111      * 序列化时执行的方法112      * @return array每个数组元素为一个需要被序列化的属性名113      *114      */115     public function __sleep(){116         return array(‘_host‘,‘_post‘,‘_user‘,‘_pass‘,‘_charset‘,‘_dbname‘);117     }118 119     /*120      * 反序列化时被执行121      * 重新初始化工作122      */123     public function __wakeup(){124         //连接数据库服务器125         $this->_connect();126         //设定连接字符集127         $this->_setCharset();128         //选择默认数据库129         $this->_selectDB();130     }131 }
View Code

 

简单的MySQLDB类