php的Mysqli封装类

php封装的mysqli完整类库.zip 介绍php封装的mysqli类,结合实例形式分析了php针对mysqli操作类的定义与使用技巧,掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)私有的克隆方法-为了防止在类外通过clone成生另一个对象 (4)公有的静态方法-为了让用户进行实例化对象的操作 立即下载
初学php,由于SQL语句书写比较麻烦,就寻思着写个封装类,以便以后调用。
写得并不完善,谨以此记录。

<?php
header('content-type:text/html;charset=utf-8');

class ConnectMysqli{
    //私有的属性
    private static $dbcon=false;
    private $host;
    private $port;
    private $user;
    private $pass;
    private $db;
    private $charset;
    private $link;
    //私有的构造方法
    private function __construct(){
        $this->host ='localhost';
        $this->port = '';
        $this->user = 'root';
        $this->pass = '';
        $this->db = 'wcfSQL';
        $this->charset='utf8';
        //连接数据库
        $this->db_connect();
        //设置字符集
        $this->db_charset();
    }
    //连接数据库
    private function db_connect(){
        $this->link=mysqli_connect($this->host,$this->user,'',$this->db);
        if(!$this->link){
            echo "数据库连接失败<br>";
            echo "错误编码".mysqli_errno($this->link)."<br>";
            echo "错误信息".mysqli_error($this->link)."<br>";
            exit;
        }
    }
    //设置字符集
    private function db_charset(){
        mysqli_set_charset($this->link,$this->charset);
    }
    //私有的克隆
    public static function getIntance(){
        if(self::$dbcon==false){
            self::$dbcon=new self;
        }
        return self::$dbcon;
    }
    //公用的静态方法
    public function p($arr){
        echo "<pre>";
        print_r($arr);
        echo "</pre>";
    }
    //执行sql语句的方法
    public function v($arr){
        echo "<pre>";
        var_dump($arr);
        echo "</pre>";
    }

    public function query($sql){
        $res=mysqli_query($this->link,$sql);
        if(!$res){
            echo "sql语句执行失败<br>";
            echo "错误编码是".mysqli_errno($this->link)."<br>";
            echo "错误信息是".mysqli_error($this->link)."<br>";
        }
        return $res;
    }
    /**
     * 查询某个字段
     *$query="SELECT * FROM `person` WHERE `age`>20 AND `address`='北京'"
     * getAllData('person',array("`age`>20","`address`='北京'"));
     */
    public function getAllData($list,$conditionArr){
        $tempStr='';
        $a=count($conditionArr);
        if (!$a){
            //当条件值为空时查询整个表
            $tempStr=' 1';

        }
        else {
            foreach ($conditionArr as $str) {
                $a = $a - 1;
                if (!$a) {
                    $tempStr = $tempStr . $str;
                } else {
                    $tempStr = $tempStr . $str . ' AND ';
                }
            }
        }
        $sql="SELECT * FROM `{$list}` WHERE {$tempStr}";
        $query=$this->query($sql);
        return mysqli_fetch_all($query,1);
    }
    /**
     * 增加数据的方法
     *$query=INSERT INTO `person`(`name`, `age`, `address`) VALUES ('','','')
     * insert('person',array('name','age','address'),array('张三',55,'山西'))
     */
    public function insert($list,$keyArr,$valueArr){
        $keyStr='';
        $valueStr='';
        $a=count($keyArr);
        $b=count($valueArr);
        foreach ($keyArr as $str) {
            $a = $a - 1;
            if ($a) {
                $keyStr =$keyStr. "`{$str}`" . ',';
            }
            else{
                $keyStr =$keyStr. "`{$str}`";
            }
        }
        foreach ($valueArr as $str) {
            $b = $b - 1;
            if ($b) {
                $valueStr =$valueStr. "'{$str}'". ',';
            }
            else{
                $valueStr =$valueStr. "'{$str}'";
            }
        }
        $sql="INSERT INTO `{$list}`({$keyStr}) VALUES ($valueStr)";
        $query=$this->query($sql);
    }
    /*
     * 删除一条数据方法
     *$query= DELETE FROM `person` WHERE `name`='吴'
     * deleteAll('person',array("`address`='北京'","`age`>20"))
     */
    public function deleteAll($list,$conditionArr){
        $tempStr='';
        $a=count($conditionArr);
        foreach ($conditionArr as $str){
            $a=$a-1;
            if (!$a){
                $tempStr=$tempStr.$str;

            }else{
                $tempStr=$tempStr.$str.' AND ';
            }
        }
        $sql=" DELETE FROM `{$list}` WHERE {$tempStr}";
       $query=$this->query($sql);
    }
   /*
    * 修改数据的方法
    *
    *$query= "UPDATE `person` SET `age`='34',`address`='天津' WHERE `name`='吴皇'"
    *update('person',array("`age`=20","`address`='福建'"),array("`name`='吴皇'"))
    * */
    public function update($list,$resArr,$conArr){
        $resStr='';
        $conStr='';
        $a=count($resArr);
        $b=count($conArr);
        foreach ($resArr as $str) {
            $a = $a - 1;
            if ($a) {
                $resStr =$resStr.$str.',';
            }
            else{
                $resStr =$resStr.$str;
            }
        }
        foreach ($conArr as $str) {
            $b = $b - 1;
            if ($b) {
                $conStr =$conStr.$str.' AND ';
            }
            else {
                $conStr = $conStr.$str;
            }

        }
        $sql= "UPDATE `{$list}` SET {$resStr} WHERE {$conStr}";
        $query= $this->query($sql);
    }


    private function __clone(){
        die('clone is not allowed');
    }

}

?>

php mysql封装类 php 操作数据库类 小巧方便 灵活 mysql类 立即下载

相关推荐

php封装的mysqli类完整实例

主要介绍了php封装的mysqli类,结合完整实例形式分析了php针对mysqli操作类的定义与使用技巧,需要的朋友可以参考下

PHP MySQLi 封装类完整版(汉化使用说明)

下载 MySQLi 类 安装 要使用此类,首先将MysqliDb.php导入到项目中。 require_once ('MysqliDb.php'); 使用 composer 安装 composer require joshcam/mysqli-database-class:dev-master 初始化 使用utf8编码进行简单初始化默认设置: $db = new MysqliD

码农专业户 1万+

PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例

本文实例讲述了PHP封装mysqli基于面向对象的mysql数据库操作与用法。分享给大家供大家参考,具体如下: 首先封装好mysql类 mysql.php <?php class Mysql{ private static $host=localhost; private static $user=root; private static $password=123456; private static $dbName=test; //数据库名 private static $charset=utf8;

mysql mysqli封装_封装自己的Mysqli操作类

Mysqli为php5引入的新的数据库操作对象,Mysqli包括php4中所有的mysql方法,并且Mysqli支持面向操作,并且mysqli的预处理操作可以防止SQL注入。封装自己的mysqli操作类,可以大大简化与数据库操作时的代码书写。此类封装了mysql的增加(INSERT())、修改(UPDATE())、删除(DELETE())、查询(SELECT())以及执行多条SQL语句的execs...

weixin_30356603的博客 393

关于对鱼眼相机图片进行畸变校正的两种思路

鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrd​fθ,其中rdr_drd​为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsin⁡θ2rd​2fsinθ/2。

qq_45670407的博客 1544

Sourcetree与Gitee的搭配使用

初次将gitee与sourcetree联合起来使用,还是遇到了不少问题,其中最让人烦恼的就是在我修改了一下用户名之后,便无法在Sourcetree直接推送到gitee,很是让人郁闷。本文处理Sourcetree与gitee搭配使用过程中的问题:Sourcetree身份验证失败,无法推送;Sourcetree推送时,无法显示要推送的分支;Sourcetree远端上面有感叹号。

年少时的棉花糖 4433

php mysqli封装类,php对mysqli的小封装

classMysqliCommon{private$mysqli;//内部建立mysqli对象private$dbErrorFile=‘‘;//错误日志文件/****@paramarray$dbConfi*类似于array("host"=>"127.0.0.1","dbname"=>"dilicms2","user"=>"root","password"=...

weixin_42363022的博客 334

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 275

php mysqli封装类,php封装的mysqli类完整实例

本文实例讲述了php封装的mysqli类。分享给大家供大家参考,具体如下:类:

weixin_33277243的博客 631

【CQUT】从零开始龙芯杯-开始前的准备

不同级别的Cpu对于vivado综合的时间有较大影响,其中Cpu的单核、多核性能以及cache性能影响权重较高。因此,为了保证学习进度和效率,我们建议在Cpu不低于I5 12400的环境下进行学习。Vivado2023.2安装包约100GB,为了保证成功安装建议留出300GB硬盘空间。龙芯杯的许多资料被托管在gitee,你需要git指令将资料克隆到本地。指定用书:CPU设计实战 Loongarch版 作者:汪文祥、邢金璋。Cpu性能对比网站:https://www.cpu114.com/

weixin_73689971的博客 906

Qwen3.6-27B 本地部署踩坑实录:两块 4090 折腾一天的真实记录

《Qwen3.6-27B稠密模型部署实战》摘要:本文记录了在双4090(48GB)环境下部署Qwen3.6-27B-FP8量化模型的全过程。重点解决vLLM服务启动时transformers版本不兼容问题,推荐通过构建自定义Docker镜像升级依赖。详细讲解了关键参数配置,包括128K上下文长度保持、MTP推测解码加速等技术细节,并给出显存优化建议。实测表明该稠密模型在27B参数量级下编程能力超越上一代397B MoE模型,单卡即可流畅运行FP8版本,输出速度达90token/s,是开发者理想的编程助手。文

Fzuim的博客 2764

MySQL----MySQLi 类封装

<?php class DB_mysqli { protected $mysqli; //mysqli实例对象 public $sql; //sql语句 protected $rs; //结果集 prote

Damys 1568

想学嵌入式但没开发板?试试这个免费的STM32虚拟仿真平台(含LVGL界面教程)

本文介绍如何利用免费的STM32虚拟仿真平台学习嵌入式开发,特别适合预算有限或零硬件基础的学习者。通过详细的LVGL界面开发教程,展示虚拟仿真在嵌入式学习中的高效性和实用性,涵盖环境搭建、代码实现到实机迁移的全流程,助力快速掌握嵌入式开发核心技能。

weixin_29266647的博客 306

PHP MySQLi 封装类完整版

<?php /** * MysqliDb Class * * @category Database Access * @package MysqliDb * @author Jeffery Way * @author Josh Campbell * @author Alexander V. Butenko * @copyright Copyright

码农专业户 3815

Gromacs 模拟昆虫 P450 解毒酶与农药结合完整指南,仅供参考!

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1238

C++ Qt6 qml CMakeLists.txt如何添加qrc文件

本文介绍了在Qt6项目中如何通过CMake管理QML图片资源。相比Qt5的qmake,CMake需要手动创建qrc文件并配置CMakeLists.txt。关键步骤包括:1)创建resources.qrc文件并添加图片资源;2)在CMakeLists.txt中设置CMAKE_AUTORCC为ON开启自动资源处理;3)使用qt_add_resources将qrc文件绑定到项目。配置完成后,可通过"qrc:alias"方式引用资源图片,解决了相对路径管理复杂的问题。

琅嬛福地 1453

php mysqli封装类,PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】

本文实例讲述了PHP基于MySQLI函数封装的数据库连接工具类。分享给大家供大家参考,具体如下:mysql.class.php:class mysql{private $mysqli;private $result;/*** 数据库连接* @param $config 配置数组*/public function connect($config){$host = $config["host"]; ...

weixin_39819283的博客 201

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

php mysqli封装类

最近写了一个基于mysqli扩展的MySQL数据库操作类,开放了两个方法:Db::execute($sql),Db::getSql();此类是最终类,不可继承。在实例化是,需要数据库服务器所在地址,用户名,密码,以及数据库名。此类肯定有不完善的地方,还请大家指正! <?php interface Database{ function execute($sql); ...

weixin_30835933的博客 82

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

php mysql操作封装类_php MySQLi数据库操作 封装类

class DBDA //定义一个类{//定义成员变量,不能直接定义,前面要加上public或者是privatepublic $host = "localhost"; //服务器地址public $uid = "root"; //数据库的用户名public $pwd = "123"; //数据库密码//做一个函数,执行sql语句,返...

weixin_42356315的博客 220

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

php操作mysql的封装类_PHP封装的mysqli数据库操作类示例

本文实例讲述了PHP封装的mysqli数据库操作类。分享给大家供大家参考,具体如下:由于PHPMySQL操作在PHP5.4以下被弃用而推荐使用mysqli(MySQL Improvement),这里是在我原有的MySQL数据库操作类的基础上加以改进而编写出的MySQLI数据库操作类,整体代码与MySQL数据库操作类大致相同,直接实例化db_class即可class db_class{public ...

weixin_35793357的博客 251

php MySQLi数据库操作 封装类

<?phpclass DBDA //定义一个类{ //定义成员变量,不能直接定义,前面要加上public或者是private public $host = "localhost"; //服务器地址 public $uid = "root"; //数据库的用户名 public $pwd = "123"; ...

weixin_30384217的博客 280

PHP Mysqli Class收集

轉自:http://www.aplweb.co.uk/blog/php/mysqli-wrapper-class/ /** * Make an array of references to the values of another array * Note: useful when references rather than values are requi...

weixin_30367873的博客 79

php mysql操作封装类_PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例

本文实例讲述了PHP封装mysqli基于面向对象的mysql数据库操作与用法。分享给大家供大家参考,具体如下:首先封装好mysql类mysql.phpclass Mysql{private static $host="localhost";private static $user="root";private static $password="123456";private static $db...

weixin_39575007的博客 171

便捷的php操作mysql库MysqliDb

github 地址:https://github.com/joshcam/PHP-MySQLi-Database-Class MysqliDb -- Simple MySQLi wrapper and object mapper with prepared statements Table of Contents InitializationObjects mappingInser...

weixin_30699831的博客 111

php封装类的数据库修改怎么调用,PHP数据库处理封装类

这篇文章主要介绍了PHP数据库处理封装类,结合完整实例形式分析了php基于mysqli封装的数据库连接及增删改查等操作,需要的朋友可以参考下具体如下:MySQL的操作相关类,检查并使用了mysqli//sample15_12.phpclass mydb {private $user;private $pass;private $host;private $db;//Constructor fun...

weixin_39584405的博客 114
上一篇: iOS转场动画CATransition
下一篇: iOS中协议delegate的传值注意点
浮生丿未歇
博客等级 码龄10年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值