Maison >développement back-end >tutoriel php >php面向对象思想设计Mysql数据库操作类
<?php/*1.该类一实例化,就可以自动连接上mysql数据库 2.该类可以单独去设定要使用的连接编码 3.该类可以单独去设定要使用的数据库 4.可以主动关闭连接*/class MysqlDB{ private $link=null; //服务器地址,端口号,用户名,密码,编码,数据库名私有化 private $host; private $port; private $user; private $password; private $charset; private $dbname; //实例化就会自动连接数据库 private function __construct($config) { $this->host=!empty($config['host'])? $config['host']:"localhost"; $this->port=!empty($config['port'])? $config['port']:"3306"; $this->user=!empty($config['user'])? $config['user']:"root"; $this->password=!empty($config['password'])? $config['password']:""; $this->charset=!empty($config['charset'])? $config['charset']:"utf8"; $this->dbname=!empty($config['dbname'])? $config['dbname']:""; $this->link= mysql_connect ("{$this->host}:{$this->port}", "{$this->user}","{$this->password}") or die('执行失败'); $this->setCharset($this->charset); $this->useDBname($this->dbname); } //单例设计模式 static $temp=null; static function getClass(){ if(!isset(self::$temp)){ $class=new self(); }else{ return self::$temp; } } //可以设定编码 function setCharset($charset){ mysql_query("set names $charset"); } //可以设定要连接的数据库 function useDBname($dbname){ mysql_query("use $dbname"); } //可以关闭数据库 function closeDB(){ mysql_close($this->link); echo"关闭成功!"; } //执行一条增删改语句,返回真假结果 function exec($sql){ $result=$this->query($sql); return true; } //返回一行的查询数据 function gerRow($sql){ $result=$this->query($sql); $array=mysql_fetch_array($result); mysql_free_result($result);//释放资源 return $array; } //返回多行的查询数据 function getRows($sql){ $result=$this->query($sql); $arr=array(); while($array=mysql_fetch_array($result)){ $arr[]=$array; } mysql_free_result($result);//释放资源 return $arr; } //返回一个数据的语句,可以返回一个直接值 function getOneData($sql){ $result=$this->query($sql); $array=mysql_fetch_array($result); $data=$array[0]; mysql_free_result($result);//释放资源 return $data; } //可以执行任何sql语句,并进行错误处理,或返回执行结果 function query($sql){ $result=mysql_query($sql,$this->link); if($result===false){ echo"<h2>执行失败,请参看如下信息:"; echo"<br/>错误代号:".mysql_errno(); echo"<br/>错误信息:".mysql_error(); echo"<br/>错误语句:".$sql; die(); }else{ return $result; } }}