PHP封装的mysqli数据库操作类示例


Posted in PHP onFebruary 16, 2019

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

由于PHPMySQL操作在PHP5.4以下被弃用而推荐使用mysqli(MySQL Improvement),这里是在我原有的MySQL数据库操作类的基础上加以改进而编写出的MySQLI数据库操作类,整体代码与MySQL数据库操作类大致相同,直接实例化db_class即可

<?php
class db_class{
    public $db_url; //连接地址
    public $db_username; //连接名
    public $db_userpassword; //连接密码
    public $db_name; //数据库名
    public $db_tablename; //表名
    public $db_conn; //数据库连接
    public $db_order;
    public $db_limit;
    public function db_getconn(){ //连接数据库
        $this->db_conn= mysqli_connect($this->db_url,$this->db_username,$this->db_userpassword,$this->db_name);
        if (!$this->db_conn)
        {
      echo "连接 MySQL 失败: " . mysqli_connect_error();
    }
    }
    public function __construct($db_url,$db_username,$db_userpassword,$db_name){ //构造方法赋值
    $this->db_url=$db_url;
        $this->db_username=$db_username;
        $this->db_userpassword=$db_userpassword;
        $this->db_name=$db_name;
        $this->db_order="";
        $this->db_limit="";
        $this->db_getconn();
    mysqli_query($this->db_conn,'set names utf8');
    }
    public function db_settablename($db_tablename){ //设置表名
        $this->db_tablename=$db_tablename;
    }
    public function db_setorder($str){ //排序操作
        $this->db_order="order by $str";
    }
    public function db_setlimit($start,$end){ //分页操作
     $this->db_limit="limit $start,$end";
    }
    public function db_select($typearr="",$where=""){ //查询操作
        if(empty($typearr)){
            $typearr="*";
        }
        else{
            $typearr=implode(",",$typearr);
        }
        if(empty($where)){
            $where="";
        }else{
            $where="where ".$where;
        }
        $arr=array();
        $sql="select $typearr from $this->db_tablename $where $this->db_order $this->db_limit ";
        $result = mysqli_query($this->db_conn,$sql);
        while($row = $result->fetch_array()) {
            $arr[]=$row;
        }
        return $arr;
    }
    public function db_update($typearr,$valuearr,$where=""){ //更新操作
    $sql="";
        if(empty($where)){
            $where="";
        }else{
            $where=" where ".$where;
        }
        $sql.="update $this->db_tablename set ";
         foreach ($typearr as $key=>$value){
             if(count($typearr)-1==$key){
                 $sql.=$value."='".$valuearr[$key]."'";
             }else{
                 $sql.=$value."='".$valuearr[$key]."'".",";
             }
         }
        $sql.=$where;
    mysqli_query($this->db_conn,$sql);
    }
    public function db_delete($typestr,$valuestr){ //删除操作
    $sql="delete from $this->db_tablename WHERE $typestr=$valuestr";
    mysqli_query($this->db_conn,$sql);
    }
    public function db_insert($typearr,$valuearr){ //插入操作
        $sql="insert into $this->db_tablename(".implode(",", $typearr).") values(".implode(",", $valuearr).")";
    mysqli_query($this->db_conn,$sql);
    }
    public function __destruct(){ //析构方法关闭连接
        mysqli_close($this->db_conn);
    }
}

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

PHP 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
第十一节 重载 [11]
Oct 09 PHP
PHP5 面向对象程序设计
Feb 13 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
php include类文件超时问题处理
Feb 06 PHP
Symfony2创建页面实例详解
Mar 18 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP fprintf()函数用法讲解
Feb 16 #PHP
PHP explode()函数用法讲解
Feb 15 #PHP
php二维数组按某个键值排序的实例讲解
Feb 15 #PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 #PHP
实例讲解PHP表单验证功能
Feb 15 #PHP
实例讲解PHP表单处理
Feb 15 #PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 #PHP
You might like
php 获取SWF动画截图示例代码
2014/02/10 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
js constructor的实际作用分析
2011/11/15 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
关于全局变量和局部变量的那些事
2013/01/11 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python实现图像识别功能
2018/01/29 Python
Django xadmin安装及使用详解
2020/10/26 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
实习自我鉴定范文
2013/10/30 职场文书
社会实践感言
2014/01/25 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
党员证明信
2015/06/19 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js