学习到目前,自己封装的db类和pdo类

Posted v斌v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习到目前,自己封装的db类和pdo类相关的知识,希望对你有一定的参考价值。

DB封装类

<?php
class DBDA
{
    public $host = "localhost";
    public $uid = "root";
    public $pwd = "root";
    public $dbname = "mydb";
    
    public function Query($sql,$type=1)  //连接数据库,参数默认为1的时候为查询结果,其它的为增删改。
    {
        $db = new mysqli($this->host,$this->uid,$this->pwd,$this->dbname);
        $result = $db->query($sql);
        
        if($type=="1")
        {
            return $result->fetch_all();
        }
        else
        {
            return $result;
        }
    }
    
    public function StrQuery($sql,$type=1)  //此方法用于把取出的数据(二维数组)进行字符串拼接处理,用^和|分隔开。
    {
        $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
        $result = $db->query($sql);
        
        if($type=="1")
        {
            $arr = $result->fetch_all();
            $str = "";
            foreach($arr as $v)
            {
                $str = $str.implode("^",$v)."|";
            }
            $str = substr($str,0,strlen($str)-1);
            return  $str;
        }
        else
        {
            return $result;
        }
    }
    
    public function JsonQuery($sql,$type=1)  //此方法用于ajax中返回的是jason数据类型时使用
    {
        $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
        $result = $db->query($sql);
        
        if($type=="1")
        {
            $arr = $result->fetch_all(MYSQLI_ASSOC);//括号内为将参数改为关联数组
            return json_encode($arr);
        }
        else
        {
            return $result;
        }
    }
}

 

PDO封装类

<?php
class DBDAP
{
    public $host = "localhost";
    public $uid = "root";
    public $pwd = "root";
    public $dbname = "mydb";
    
    public function Query($sql,$type=1)
    {
        $dsn = "mysql:dbname=$this->dbname;host=$this->host";
        $pdo = new PDO($dsn,"$this->uid","$this->pwd");
        $result = $pdo->query($sql);
        
        if($type=="1")  //参数为1时,返回查询结果
        {
            return $result->fetchall(PDO::FETCH_ASSOC);//括号内的参数必须填写,不然取得的数据会发生重复现象。若不写,返回的数据有关联数据也有索引数据。
        }
        else
        {
            $zeng = $pdo->prepare($sql);
            if($type=="2")  //参数为2时,可以进行预处理语句
            {
            return $zeng;
            }else
            {
            return $result;
            }
        }
    }
    
    public function StrQuery($sql,$type=1)  //此方法用于对取出的数据(二维数组)进行拼接字符串处理
    {
        $dsn = "mysql:dbname=$this->dbname;host=$this->host";
        $pdo = new PDO($dsn,"$this->uid","$this->pwd");
        $result = $pdo->query($sql);
        
        if($type=="1")
        {
            $arr = $result->fetchall(PDO::FETCH_ASSOC);
            $str = "";
            foreach($arr as $v)
            {
                $str = $str.implode("^",$v)."|";
            }
            $str = substr($str,0,strlen($str)-1);
            return  $str;
        }
        else
        {
            $zeng = $pdo->prepare($sql);
            if($type=="2")
            {
            return $zeng;
            }
            else
            {
            return $result;
            }
        }
    }
    public function JsonQuery($sql,$type=1)  //此方法用于ajax中用于返回为jason数据类型时使用
    {
        $dsn = "mysql:dbname=$this->dbname;host=$this->host";
        $pdo = new PDO($dsn,"$this->uid","$this->pwd");
        $result = $pdo->query($sql);
        
        if($type=="1")
        {
            $arr = $result->fetchall(PDO::FETCH_ASSOC);
            return json_encode($arr);
        }
        else
        {
            $zeng = $pdo->prepare($sql);
            if($type=="2")
            {
            return $zeng;
            }
            else
            {
            return $result;
            }
        }
    }
    
}

 

以上是关于学习到目前,自己封装的db类和pdo类的主要内容,如果未能解决你的问题,请参考以下文章

封装好的PDO类

PDO类的封装

PHP PDO类

封装自己的DB类(PHP)

Flutter学习-dart:dart类和对象

开发自己的框架——数据库工具类的封装