mysql dlink_简单的MySQLDB类

1 <?php2 error_reporting(E_ALL ^E_DEPRECATED);3

4 //数据库操作类

5 classMySQLDB{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::$_instanceinstanceof 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执行失败
';79 echo '错误的SQL为:',$sql,'
';80 echo '错误代码为:',mysql_errno($this->_link),'
';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执行失败
';100 echo '错误的SQL为:',$sql,'
';101 echo '错误代码为:',mysql_errno($this->_link),'
';102 echo '错误信息为:',mysql_error($this->_link);103 die;104 }105 }106 }107

108 /**109 * 获得全部记录110 *111 * @param $sql string 查询类的SQL(select,show,desc)112 *113 * @return array 二维数组,记录的集合114 */

115 public function fetchAll($sql){116 //先执行

117 if(!$result = mysql_query($sql,$this->_link)){118 //执行失败给出错误信息

119 echo '-_-!SQL执行失败
';120 echo '错误的SQL为:',$sql,'
';121 echo '错误代码为:',mysql_errno($this->_link),'
';122 echo '错误信息为:',mysql_error($this->_link);123 die;124 }125 //获取数据

126 $rows = array();127 while($row = mysql_fetch_assoc($result)){128 $rows[] = $row;129 }130 //释放结果集

131 mysql_free_result($result);132 //返回

133 return $rows;134 }135

136 /**137 * 获得一条记录138 *139 * @param $sql string 查询类的SQL(select,show,desc)140 *141 * @return array 一维数组,一条记录142 */

143 public function fetchRow($sql){144 //先执行

145 if(!$result = mysql_query($sql,$this->_link)){146 //执行失败给出错误信息

147 echo '-_-!SQL执行失败
';148 echo '错误的SQL为:',$sql,'
';149 echo '错误代码为:',mysql_errno($this->_link),'
';150 echo '错误信息为:',mysql_error($this->_link);151 die;152 }153 //获取数据

154 $row = mysql_fetch_assoc($result);155 //释放结果集

156 mysql_free_result($result);157 //返回

158 return $row;159 }160

161 /**162 * 获得一个数据163 *164 * @param $sql string 查询类的SQL(select,show,desc)165 *166 * @return string 唯一的数据 第一条记录的第一列167 */

168 public function fetchColumn($sql){169 //先执行

170 if(!$result = mysql_query($sql,$this->_link)){171 //执行失败给出错误信息

172 echo '-_-!SQL执行失败
';173 echo '错误的SQL为:',$sql,'
';174 echo '错误代码为:',mysql_errno($this->_link),'
';175 echo '错误信息为:',mysql_error($this->_link);176 die;177 }178 //获取数据

179 $row = mysql_fetch_row($result);180 //释放结果集

181 mysql_free_result($result);182 //返回

183 return $row[0];184 }185

186

187 /**188 * 序列化时执行的方法189 * @return array每个数组元素为一个需要被序列化的属性名190 *191 */

192 public function__sleep(){193 return array('_host','_post','_user','_pass','_charset','_dbname');194 }195

196 /*

197 * 反序列化时被执行198 * 重新初始化工作199 */

200 public function__wakeup(){201 //连接数据库服务器

202 $this->_connect();203 //设定连接字符集

204 $this->_setCharset();205 //选择默认数据库

206 $this->_selectDB();207 }208 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值