PHP数据库处理封装类实例


Posted in PHP onDecember 24, 2016

本文实例讲述了PHP数据库处理封装类。分享给大家供大家参考,具体如下:

MySQL的操作相关类,检查并使用了mysqli

<?php
  //sample15_12.php
  class mydb {
    private $user;
    private $pass;
    private $host;
    private $db;
    //Constructor function.
    public function __construct (){
      $num_args = func_num_args();
      if($num_args > 0){
        $args = func_get_args();
        $this->host = $args[0];
        $this->user = $args[1];
        $this->pass = $args[2];
        $this->connect();
      }
    }
    //Function to tell us if mysqli is installed.
    private function mysqliinstalled (){
      if (function_exists ("mysqli_connect")){
        return true;
      } else {
        return false;
      }
    }
    //Function to connect to the database.
    private function connect (){
      try {
        //Mysqli functionality.
        if ($this->mysqliinstalled()){
          if (!$this->db = new mysqli ($this->host,$this->user,$this->pass)){
            $exceptionstring = "Error connection to database: <br />";
            $exceptionstring .= mysqli_connect_errno() . ": " . mysqli_connect_error();
            throw new exception ($exceptionstring);
          }
        //Mysql functionality.
        } else {
          if (!$this->db = mysql_connect ($this->host,$this->user,$this->pass)){
            $exceptionstring = "Error connection to database: <br />";
            $exceptionstring .= mysql_errno() . ": " . mysql_error();
            throw new exception ($exceptionstring);
          }
        }
      } catch (exception $e) {
        echo $e->getmessage();
      }
    }
    //Function to select a database.
    public function selectdb ($thedb){
      try {
        //Mysqli functionality.
        if ($this->mysqliinstalled()){
          if (!$this->db->select_db ($thedb)){
            $exceptionstring = "Error opening database: $thedb: <br />";
            $exceptionstring .= $this->db->errno . ": " . $this->db->error;
            throw new exception ($exceptionstring);
          }
        //Mysql functionality.
        } else {
          if (!mysql_select_db ($thedb, $this->db)){
            $exceptionstring = "Error opening database: $thedb: <br />";
            $exceptionstring .= mysql_errno() . ": " . mysql_error();
            throw new exception ($exceptionstring);
          }
        }
      } catch (exception $e) {
        echo $e->getmessage();
      }
    }
    //Function to perform a query.
    public function execute ($thequery){
      try {
        //Mysqli functionality.
        if ($this->mysqliinstalled()){
          if (!$this->db->query ($thequery)){
            $exceptionstring = "Error performing query: $thequery: <br />";
            $exceptionstring .= $this->db->errno . ": " . $this->db->error;
            throw new exception ($exceptionstring);
          } else {
            echo "Query performed correctly: " . $this->db->affected_rows . " row(s) affected.<br />";
          }
        //Mysql functionality.
        } else {
          if (!mysql_query ($thequery, $this->db)){
            $exceptionstring = "Error performing query: $thequery: <br />";
            $exceptionstring .= mysql_errno() . ": " . mysql_error();
            throw new exception ($exceptionstring);
          } else {
            echo "Query performed correctly: " . mysql_affected_rows () . " row(s) affected.<br />";
          }
        }
      } catch (exception $e) {
        echo $e->getmessage();
      }
    }
    //Function to return a row set.
    public function getrows ($thequery){
      try {
        //Mysqli functionality.
        if ($this->mysqliinstalled()){
          if ($result = $this->db->query ($thequery)){
            $returnarr = array ();
            while ($adata = $result->fetch_array ()){
              $returnarr = array_merge ($returnarr,$adata);
            }
            return $returnarr;
          } else {
            $exceptionstring = "Error performing query: $thequery: <br />";
            $exceptionstring .= $this->db->errno . ": " . $this->db->error;
            throw new exception ($exceptionstring);
          }
        //Mysql functionality.
        } else {
          if (!$aquery = mysql_query ($thequery)){
            $exceptionstring = "Error performing query: $thequery: <br />";
            $exceptionstring .= mysql_errno() . ": " . mysql_error();
            throw new exception ($exceptionstring);
          } else {
            $returnarr = array ();
            while ($adata = mysql_fetch_array ($aquery)){
              $returnarr = array_merge ($returnarr,$adata);
            }
            return $returnarr;
          }
        }
      } catch (exception $e) {
        echo $e->getmessage();
      }
    }
    //Function to close the database link.
    public function __destruct() {
      try {
        //Mysqli functionality.
        if ($this->mysqliinstalled()){
          if (!$this->db->close()){
            $exceptionstring = "Error closing connection: <br />";
            $exceptionstring .= $this->db->errno . ": " . $this->db->error;
            throw new exception ($exceptionstring);
          }
        //Mysql functionality.
        } else {
          if (!mysql_close ($this->db)){
            $exceptionstring = "Error closing connection: <br />";
            $exceptionstring .= mysql_errno() . ": " . mysql_error();
            throw new exception ($exceptionstring);
          }
        }
      } catch (exception $e) {
        echo $e->getmessage();
      }
    }
  }
  //Now, let us create an instance of mydb.
  $mydb = new mydb ("localhost","root","");
  //Select a database to use.
  $mydb->selectdb ("wps");
  //Now, let's perform an action.
  //$adata = $mydb->execute ("UPDATE cd SET title='Hybrid Theory' WHERE cdid='2'");
  //Then, let's try to return a row set.
  $adata = $mydb->getrows ("SELECT * FROM wp_terms");
  for ($i = 0; $i < count ($adata); $i++){
    echo $adata[$i] . "<br />";
  }
  $mydb->selectdb("test");
  $result = $mydb->execute("UPDATE user SET age = 23 WHERE id = 2");
  echo "<br />";
  echo $result;
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
发挥语言的威力--融合PHP与ASP
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
php跨域cookie共享使用方法
Feb 20 PHP
Chrome Web App开发小结
Sep 04 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
如何判断php mysqli扩展类是否开启
Dec 24 #PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 #PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 #PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 #PHP
php的4种常用运行方式详解
Dec 22 #PHP
php curl 模拟登录并获取数据实例详解
Dec 22 #PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 #PHP
You might like
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
python web框架学习笔记
2016/05/03 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
10个示例带你掌握python中的元组
2020/11/23 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
专科应届生求职信
2013/11/24 职场文书
档案接收函
2014/01/13 职场文书
会计的岗位职责
2014/03/15 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
房屋租房协议书范本
2014/12/04 职场文书
小学体育组工作总结
2015/08/13 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
详解nginx进程锁的实现
2021/06/14 Servers
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js