• 自制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.使用之前必须把数据库名改成你的数据库名。这个是最重要的,也是最容易忘记的。

  • 相关阅读:
    HDU 2104 hide handkerchief
    HDU 1062 Text Reverse 字符串反转
    HDU 1049
    HDU 1096 A+B for Input-Output Practice (VIII)
    POJ 1017
    C/C++一些难为人知的小细节
    小刘同学的第十二篇博文
    小刘同学的第十一篇博文
    小刘同学的第十篇博文
    小刘同学的第九篇日记
  • 原文地址:https://www.cnblogs.com/daofaziran/p/11570790.html
Copyright © 2020-2023  润新知