zoukankan      html  css  js  c++  java
  • 仅支持基本增删改查的学生自制php操作mysql的工具类 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.使用之前必须把数据库名改成当前项目数据库名。这个是最重要的,也是最容易忘记的。

     

  • 相关阅读:
    经典傻逼题
    谈谈Spring的IoC之注解扫描
    吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(1)
    吴裕雄 python 神经网络——TensorFlow 实现LeNet-5模型处理MNIST手写数据集
    吴裕雄 python 神经网络——TensorFlow 花瓣识别2
    吴裕雄 python 神经网络——TensorFlow训练神经网络:花瓣识别
    吴裕雄 python 神经网络——TensorFlow训练神经网络:卷积层、池化层样例
    吴裕雄 python 神经网络——TensorFlow训练神经网络:MNIST最佳实践
    吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用滑动平均
    吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用隐藏层
  • 原文地址:https://www.cnblogs.com/mzzone/p/10911891.html
Copyright © 2011-2022 走看看