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

发布时间 - 2026-01-11 02:45:05    点击率:

本文实例讲述了PHP基于MySQLI函数封装的数据库连接工具类。分享给大家供大家参考,具体如下:

mysql.class.php:

<?php
class mysql
{
  private $mysqli;
  private $result;
  /**
   * 数据库连接
   * @param $config 配置数组
   */
  public function connect($config)
  {
    $host = $config['host'];    //主机地址
    $username = $config['username'];//用户名
    $password = $config['password'];//密码
    $database = $config['database'];//数据库
    $port = $config['port'];    //端口号
    $this->mysqli = new mysqli($host, $username, $password, $database, $port);
  }
  /**
   * 数据查询
   * @param $table 数据表
   * @param null $field 字段
   * @param null $where 条件
   * @return mixed 查询结果数目
   */
  public function select($table, $field = null, $where = null)
  {
    $sql = "SELECT * FROM {$table}";
    if (!empty($field)) {
      $field = '`' . implode('`,`', $field) . '`';
      $sql = str_replace('*', $field, $sql);
    }
    if (!empty($where)) {
      $sql = $sql . ' WHERE ' . $where;
    }
    $this->result = $this->mysqli->query($sql);
    return $this->result->num_rows;
  }
  /**
   * @return mixed 获取全部结果
   */
  public function fetchAll()
  {
    return $this->result->fetch_all(MYSQLI_ASSOC);
  }
  /**
   * 插入数据
   * @param $table 数据表
   * @param $data 数据数组
   * @return mixed 插入ID
   */
  public function insert($table, $data)
  {
    foreach ($data as $key => $value) {
      $data[$key] = $this->mysqli->real_escape_string($value);
    }
    $keys = '`' . implode('`,`', array_keys($data)) . '`';
    $values = '\'' . implode("','", array_values($data)) . '\'';
    $sql = "INSERT INTO {$table}( {$keys} )VALUES( {$values} )";
    $this->mysqli->query($sql);
    return $this->mysqli->insert_id;
  }
  /**
   * 更新数据
   * @param $table 数据表
   * @param $data 数据数组
   * @param $where 过滤条件
   * @return mixed 受影响记录
   */
  public function update($table, $data, $where)
  {
    foreach ($data as $key => $value) {
      $data[$key] = $this->mysqli->real_escape_string($value);
    }
    $sets = array();
    foreach ($data as $key => $value) {
      $kstr = '`' . $key . '`';
      $vstr = '\'' . $value . '\'';
      array_push($sets, $kstr . '=' . $vstr);
    }
    $kav = implode(',', $sets);
    $sql = "UPDATE {$table} SET {$kav} WHERE {$where}";
    $this->mysqli->query($sql);
    return $this->mysqli->affected_rows;
  }
  /**
   * 删除数据
   * @param $table 数据表
   * @param $where 过滤条件
   * @return mixed 受影响记录
   */
  public function delete($table, $where)
  {
    $sql = "DELETE FROM {$table} WHERE {$where}";
    $this->mysqli->query($sql);
    return $this->mysqli->affected_rows;
  }
}

使用方法

<?php
require_once 'mysql.class.php';
/* 配置连接参数 */
$config = array(
  'type' => 'mysql',
  'host' => 'localhost',
  'username' => 'woider',
  'password' => '3243',
  'database' => 'php',
  'port' => '3306'
);
/* 连接数据库 */
$mysql = new mysql();
$mysql->connect($config);
/* 查询数据 */
//1、查询所有数据
$table = 'mysqli';//数据表
$num = $mysql->select($table);
echo '共查询到' . $num . '条数据';
print_r($mysql->fetchAll());
//2、查询部分数据
$field = array('username', 'password'); //过滤字段
$where = 'id % 2 =0';          //过滤条件
$mysql->select($table, $field, $where);
print_r($mysql->fetchAll());
/* 插入数据 */
$table = 'mysqli';//数据表
$data = array(  //数据数组
  'username' => 'admin',
  'password' => sha1('admin')
);
$id = $mysql->insert($table, $data);
echo '插入记录的ID为' . $id;
/* 修改数据 */
$table = 'mysqli';//数据表
$data = array(
  'password' => sha1('nimda')
);
$where = 'id = 44';
$rows = $mysql->update($table, $data, $where);
echo '受影响的记录数量为' . $rows . '条';
/* 删除数据 */
$table = 'mysqli';
$where = 'id = 45';
$rows = $mysql->delete($table, $where);
echo '已删除' . $rows . '条数据';

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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


# PHP  # MySQLI  # 数据库  # 连接  # 工具类  # PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例  # PHP封装的mysqli数据库操作类示例  # php基于PDO实现功能强大的MYSQL封装类实例  # php基于单例模式封装mysql类完整实例  # php封装的mysqli类完整实例  # php mysql 封装类实例代码  # php封装的连接Mysql类及用法分析  # php实现mysql封装类示例  # PHP访问MYSQL数据库封装类(附函数说明)  # php链式操作mysql数据库(封装类带使用示例)  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 查询结果  # 面向对象  # 量为  # 端口号  # 数据查询  # 连接数据库  # 讲述了  # table  # null  # return  # field  # database  # password 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何处理CORS跨域请求?(配置示例)  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Android okhttputils现在进度显示实例代码  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Linux系统命令中tree命令详解  C语言设计一个闪闪的圣诞树  Java遍历集合的三种方式  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何配置和使用缓存?(Redis代码示例)  EditPlus中的正则表达式实战(5)  Swift中swift中的switch 语句  如何解决hover在ie6中的兼容性问题  浅述节点的创建及常见功能的实现  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Java类加载基本过程详细介绍  Python文件流缓冲机制_IO性能解析【教程】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  iOS中将个别页面强制横屏其他页面竖屏  如何用已有域名快速搭建网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  潮流网站制作头像软件下载,适合母子的网名有哪些?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  如何破解联通资金短缺导致的基站建设难题?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  JS去除重复并统计数量的实现方法  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何挑选优质建站一级代理提升网站排名?  如何在香港服务器上快速搭建免备案网站?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何用PHP工具快速搭建高效网站?  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何在IIS中新建站点并配置端口与物理路径?  如何在搬瓦工VPS快速搭建网站?