• php数据访问之封装类


    前期我们数据访问时,需要在每个页面都新建一次数据库连接,这样做的缺陷有

    1.数据访问的页面很多时我们需要在每个页面新建连接 

    2.当数据库发生变化时(比如移至其他PC办公)时,需要修改数据库的连接方式,比如密码,这样后期维护的工作量会非常大。

    所以我们可以引入面向对象的思想,将数据访问方法封装成一个类,然后每个使用数据库的页面就加载一下这个类,这样以后如果数据库发生改动,就可以在类中修改,有礼于后期维护和数据库功能扩展。

    这里我们先定义一个DABA类(类的命名遵循驼峰命名法,即首字母大写,第一个首字母也大写  例如 DBDA.class.php)

     1 <?php
     2 class DBDA
     3 {
     4     public $host = "localhost";                //将连接的四要素定义为成员属性
     5     public $uid = "root";                        
     6     public $pwd = "123";
     7     public $dbname = "mydb";
     8     
     9     //执行SQL语句返回相应的结果
    10     //$sql 要执行的SQL语句
    11     //$type 代表SQL语句的类型,0代表增删改 1代表查询
    12     function query($sql,$type=1)    //方法的命名也遵循驼峰命名法,第一个单词的首字母小写,往后的每个单词的首字母大写,和类命名有一点点区别
    13     {
    14         $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
    15         
    16         $result = $db->query($sql);
    17         
    18         if($type)
    19         {
    20             //如果是查询,返回数据
    21             return $result->fetch_all();// 这里抓取了all,会返回一个二维数组,也可以抓取row(),返回的是一维数组
    22         }
    23         else
    24         {
    25             //如果是增删改,返回true或false
    26             return $result;
    27         }
    28     }
    29 }
    30 ?>

    接下来就写我们的访问页面(主要看php代码部分 的变化)

     1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     2 <title>无标题文档</title>
     3 </head>
     4 
     5 <body>
     6 <table cellpadding="0" cellspacing="0" width="100%" border="1">
     7 <tr>
     8         <th>学号</th>
     9         <th>姓名</th>
    10         <th>性别</th>
    11         <th>生日</th>
    12         <th>班级</th>
    13         <th>操作</th>
    14         
    15     </tr>
    16 <?php
    17 require "DBDA.class.php";           //加载我们定义的类
    18 $db=new DBDA();                        //构建对象
    19 $sql="select * from student";        //写入SQL语句
    20 $attr=$db->query($sql,1);//对象调用了类里面的query方法,里面的参数$sql和$type ,其中$type不写也会默认为1(true)
    21 //注意这里的$db->query($sql)不再是一个结果集了,因为在类的query方法里已经执行了fetch抓取,结果是二维数组
    22foreach($attr as $v)
          { /遍历这个数组的值
    23 echo "<tr align='center'> 24 <td>{$v[0]}</td> 25 <td>{$v[1]}</td> 26 <td>{$v[2]}</td> 27 <td>{$v[3]}</td> 28 <td>{$v[4]}</td> 29 <td><a href='ttttgai'>修改</a></td> 30 </tr>"; 31 }

    看看效果

    运行成功,这样我们就不用每个页面都写入访问连接了,只需要加载一下这个类文件,修改也方便,确实方便了很多(毕竟也是面向对象思想的优势)。

  • 相关阅读:
    二叉树的常用操作(节点的后继节点)
    二叉树的常用操作(节点的后继节点)
    数据结构实现时所需的成员变量、标准对外接口
    数据结构实现时所需的成员变量、标准对外接口
    标准模板库(STL) map —— 初始化问题
    标准模板库(STL) map —— 初始化问题
    递归与尾递归
    递归与尾递归
    编程常见处理逻辑
    编程常见处理逻辑
  • 原文地址:https://www.cnblogs.com/du892294464/p/6780455.html
Copyright © 2020-2023  润新知