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快速搭建网站?

