首页 > 数据库技术 > 详细

自制php操作mysql的工具类(学生笔记)

时间:2019-05-23 15:20:08      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:errno   from   16px   oca   fun   自制   行数   exe   sse   

<?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->getOne($sql);

var_dump($res);

?>

 

 

 

自制php操作mysql的工具类(学生笔记)

标签:errno   from   16px   oca   fun   自制   行数   exe   sse   

原文:https://www.cnblogs.com/mzzone/p/10911891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号