封装类未完

Posted __逆光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装类未完相关的知识,希望对你有一定的参考价值。

一、数据库的封装和引用

  之前写代码都是通过mysql取结果写的,这样写的缺点是每次要用数据时都需要写sql语句,并且要写很多份,而且当数据库换了,或者密码改了就需要修改每一个文件里的和mysql有关的参数,结果会很复杂。下面就把数据库的操作封装成一个类,每一次操作的时候去调用封装的类。

  以后就用封装类的方法写,防止换数据库、换电脑、或者是放到服务器上以后直接从封装的类里面更改数据库名称,用户名、密码等。就不需要改页面里的内容了。

 1.查询语句

第1步:建一个封装类的文件DBDA.class.php下面的语句是从自己封装类里面复制来的

<?php
//建一个封装类的文件DBDA.class.php

class DBDA//定义一个类,类名为DBDA
{
    public $host="localhost";//4个比较常用的参数:服务器地址
    public $uid="root";//用户名
    public $pdw="";//密码
    public $dbname="306";//数据库名称
    
    //封装方法
    //1.返回二维数组的方法
  
    *给一个sql语句,返回执行的结果
    用户指定的sql语句
    $sql用户给的语句类型,0代表增删改,1代表查询。一般查询使用的比较多,让$type的默认值为1.如果是增删改再改$type的值。
    $arr数组返回查询的结果,如果是查询,返回二维数组。如果是增删改,返回$result。
    
返回数组函数 function Query($sql,$type=1) { //造连接对象 $db = new MySQLi("$this->host","$this->uid","$this->pdw","$this->dbname"); //执行sql语句 $result = $db->query("$sql"); //从结果集对象里取数据。查询单独做一个方法,其它做另一个方法。 if($type==1)//如果是查询 { return $result->fetch_all();//返回查询的二维数组 } else//如果是增删改 { return $result;//返回$result }   }
    

    //返回字符串的方法
    public function StrQuery($sql,$type=1)
    {
      $db = new MySQLi($this->host,$this->uid,$this->password,$this->dbname);
      $r = $db->query($sql);

    if($type==1)
    {
      $attr = $r->fetch_all();
      $str = "";
      foreach($attr as $v)
    {
      $str .= implode("^",$v)."|"; //拼接数组为字符串   $ttr.= implode("^",$v)."|"  是$str=$str.implode("^",$v)."|"       .=和+=  -=用法一样
    }

      return substr($str,0,strlen($str)-1); //截取字符串:最后的拼接符不显示

    }
    else
    {
      return $r;
    }  
  }


  ?>
第2步:将封装的类引用到页面中
<?php
require "DBDA.class.php";//将封装的类引入此页面
$db = new DBDA();//新建一个对象
$sql = "select * from info";
$arr=$db->Query($sql);//第2个参数不写的话就是查询,因为默认值是1.
$db->Query($sql,0) //有参数0就表示是增删改语句
?>


























以上是关于封装类未完的主要内容,如果未能解决你的问题,请参考以下文章

面向对象 初级版 (Preview) 未完

接口继承与多态 总结(未完待续)

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

练武场之“封装继承”攻略(未完待续)