自制php操作mysql工具类(DB.class.php)
DB.class.php
<?php class DB{ //主机地址 var $host; //用户名 var $username; //密码 var $password; //数据库名 var $dbname; //字符集 var $charset; //数据库连接对象,主要用在mysql_query($sql,$this->con); private $con; //外界获取的mysqlDB类操作对象 public static $dao; //获得mysqlDB类对象(单例) public static function getInstance($config){ if(!isset(self::$dao)){ self::$dao = new self($config); } return self::$dao; } //private禁止外部new,减少new带来的开销,并设置默认的配置。 private function __construct($config){ $this->host = isset($config['host'])?$config['host']:'localhost'; $this->port = isset($config['port'])?$config['port']:'3306'; $this->username = isset($config['username'])?$config['username']:'root'; $this->password = isset($config['password'])?$config['password']:'root'; $this->dbname = isset($config['dbname'])?$config['dbname']:'test'; $this->charset = isset($config['charset'])?$config['charset']:'utf8'; //连接数据库 $this->con = $this->connect(); //设置数据库名,默认为test $this->useDb($this->dbname); //设置字符集,默认为utf8。 $this->setCharset($this->charset); } //禁止外部克隆 private function __clone(){ } //连接不成功在这个分段找。 ////////////////////////////////////////////////////// //连接数据库 public function connect(){ $con = mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败"); return $con; } //1.执行增、删、改sql语句 public function exec($sql){ $res = mysql_query($sql,$this->con); if($res){ // echo "<br/>sql语句:".$sql."<br>"; // var_dump($res); return true; //要是增删改有问题可以在这里输出sql调试。 }else{ echo "<br/>sql语句:".$sql; echo "<br/出错信息>:".mysql_error(); echo "<br/出错代码>:".mysql_errno(); exit; } } //额外设置字符集 public function setCharset($charset){ $sql = "set names '$charset'"; $this->exec($sql) or die("set"); //die(); } //额外设置数据库 public function useDb($dbname){ $sql = "use $dbname"; $this->exec($sql) or die("use");//or die()函数前面需返回对应的true或false; } //////////////////////////////////////////////////////// //查找出错在这个部分找。 //4.将查到的结果集转为单个数据,这里是索引数组的第一个字段。 public function getOne($sql){ $rec = mysql_query($sql,$this->con); $res = mysql_fetch_row($rec); if($res){ return $res[0]; }else{ return false; } } //可能修改的函数全部放在上面,以便查找。下方函数基本不会修改。 //编号1~4是高频率使用的函数。 //2.获取一行数据(一维) public function getRow($sql){ $rec = mysql_query($sql,$this->con); $res = mysql_fetch_assoc($rec); if($res){ return $res; }else{ return false; } } //3.获取所有数据(二维) public function getAll($sql){ $rec = mysql_query($sql,$this->con); $arr = array();//定义 一个数组 while($res = mysql_fetch_assoc($rec)){ $arr[] = $res; } if($arr){ return $arr; }else{ return false; } } } $dao = DB::getInstance(null); ?> <?php include_once("DB.class.php"); $sql = "select * from goods where id = 1"; //.获取一行数据(一维) $res = $dao->getRow($sql); var_dump($res); //以上的getRow函数只是举例,具体如何使用这个工具,首先要在你的php文件中include这个工具类,即include_once("DB.class.php"); //1.要看你的sql语句查回的数据是一维的,还是二维的,或者单个数据。 //对应的函数是getROW,getAll,getOne。 //2.增删改统一用exec。 //3.数据库的连接配置在构造构造函数中修改。 ?> 注意事项: 1.文件DB.class.php建好后。 2.在你需要操作数据库接的文件中include这个文件,上面有示例。 3.使用之前必须把数据库名改成你的数据库名。这个是最重要的,也是最容易忘记的。
引用
<?php include_once("DB.class.php"); $sql = "select * from goods where id = 1"; //.获取一行数据(一维) $res = $dao->getRow($sql); var_dump($res); //以上的getRow函数只是举例,具体如何使用这个工具,首先要在你的php文件中include这个工具类,即include_once("DB.class.php"); //1.要看你的sql语句查回的数据是一维的,还是二维的,或者单个数据。 //对应的函数是getROW,getAll,getOne。 //2.增删改统一用exec。 //3.数据库的连接配置在构造构造函数中修改。 ?>
注意事项:
1.文件DB.class.php建好后。
2.在你需要操作数据库接的文件中include这个文件,上面有示例。
3.使用之前必须把数据库名改成你的数据库名。这个是最重要的,也是最容易忘记的。