开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4213|回复: 233
打印 上一主题 下一主题
收起左侧

[易语言模块源码] 520✅NX线程池 Mysql连接池 SQL Server MariaDB PostgreSQL✅全开源4.7版

  [复制链接]
结帖率:100% (11/11)
跳转到指定楼层
发表于 2025-5-20 23:13:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   广东省茂名市
分享例程
界面截图:
备注说明: 主要更新 php中间件
本帖最后由 jcos 于 2025-5-20 23:22 编辑

今天 520 ?
其实也没啥特别的,不就是 潘金莲 给 武大郎 喝*药 上天的日子嘛

2025 - 05 - 20  更新内容(4月1至今)

****** php 中间件 *****
1、新增 MariaDB 数据库支持
2、新增 MSSQL_odbc(sql server)数据库支持
3、新增 MSSQL_sqlsrv(sql server)数据库支持
4、新增 PostgreSQL 数据库支持
5、新增 json 批量提交语句执行(事务)
6、优化 Mysql 安全及性能
7、全面改造 php接口
8、忘了。。。小细节 小更新 太多

****** mysql 连接池 *****
1、优化效率
2、也忘了。。。

****** NX 线程池 *****
1、提升效率
2、还是忘了。。。

****** 其它 *****
1、sqlite 没弄。。。
2、mssql (直连版)也没弄,但有php版

****** Ai介绍 php中间件 功能概述*****

## 一、概述
在数据驱动的时代,数据库操作的安全性、高效性和灵活性至关重要。`SQLV7.php` 作为一款基于 PHP 开发的专业数据库操作接口,凭借其先进的技术架构和完善的功能设计,为开发者提供了一套全面、可靠的数据库交互解决方案。该接口不仅支持常见的增删改查操作,还具备批量处理和自定义 SQL 执行能力,结合多层次的安全机制,确保数据在传输和处理过程中的完整性与安全性。同时,`SQLV7.php` 支持多种主流数据库,包括 MariaDB、MSSQL 和 PostgreSQL,满足不同项目的数据库需求。

## 二、核心功能详解

### 2.1 环境初始化与基础设置
- **会话管理**:通过 `session_start()` 启动会话,为接口的安全交互提供基础保障。结合表单令牌验证和会话管理机制,确保每一次请求的合法性和可追溯性,如同为系统交互设置了一道安全屏障。
- **时区与编码配置**:将时区设置为北京时间,并统一 PHP 脚本的默认字符编码和输出编码为 UTF - 8。这一配置确保了数据在不同环境下的一致性和准确性,避免因编码问题导致的数据显示错误。
- **JSON 响应格式**:使用 `header('Content - Type: application/json; charset=UTF - 8')` 将响应格式规范为 JSON,实现前后端数据的高效交互,提高开发效率和系统的可维护性。

### 2.2 错误处理与统一响应
- **错误信息定义**:预定义了一系列详细的错误信息,如 `ERR_1`(无 POST 数据)、`ERR_2`(FormHash 长度错误)等,为开发者提供明确的错误提示,便于快速定位和解决问题。
- **统一响应函数**:`jsonResponse` 函数生成统一格式的 JSON 响应,包含成功状态、时间戳、数据、错误信息和调试信息等关键字段,为前端开发提供了标准化的数据处理接口。

### 2.3 安全验证机制
- **POST 数据验证**:在处理请求前,对 `DATA` 字段的 POST 数据进行严格验证,确保请求数据的完整性和合法性,从源头上防止非法请求。
- **表单令牌验证**:通过 `formhash` 进行表单令牌验证,对令牌长度和会话存在性进行双重检查,有效防止跨站请求伪造(CSRF)攻击。
- **签名验证**:使用 `getSignature` 函数生成签名,并与请求中的签名进行比对,确保数据在传输过程中未被篡改,保障数据的完整性。
- **数据加密**:采用 RC4 加密算法对数据进行加密和解密,支持十六进制编码和 Base64 编码,确保数据在传输过程中的安全性。

### 2.4 数据库操作功能

#### 2.4.1 多数据库支持
`SQLV7.php` 支持多种主流数据库,通过 `getPDOConnection` 函数可以根据不同的数据库类型建立连接:
- **MariaDB**:默认情况下,接口使用 MySQL 连接方式,由于 MariaDB 是 MySQL 的分支,因此能很好地兼容 MariaDB 数据库。连接时会根据配置信息构建连接字符串,设置字符集并启用异常模式,确保操作的稳定性。
- **MSSQL**:提供两种连接方式,一种是通过 ODBC 连接,另一种是使用 `sqlsrv` 连接。根据不同的连接类型,会构建相应的连接字符串,并使用 PDO 进行连接。连接成功后,会设置错误处理模式为异常模式,方便捕获和处理连接错误。
- **PostgreSQL**:使用 `pgsql` 连接方式,构建包含主机名、端口、数据库名、用户名和密码的连接字符串,连接成功后会设置字符集为 `utf8mb4`,并启用异常模式,保证连接的稳定性和数据的一致性。

#### 2.4.2 单条操作
- **查询操作(`QUE`)**:支持灵活的查询条件,根据用户输入的 SQL 片段智能构建查询语句。采用重试机制,最多重试 3 次,提高操作的成功率和系统的稳定性。
- **插入操作(`INS`)**:对插入 SQL 语句进行合法性验证,确保操作的安全性。执行插入操作后,返回受影响的行数和最后插入的 ID,方便开发者进行数据管理。
- **更新操作(`UPD`)**:自动构建更新 SQL 语句,并进行合法性验证。执行更新操作后,及时返回受影响的行数,让数据更新操作可追溯。
- **删除操作(`DEL`)**:对删除 SQL 语句进行合法性验证,确保操作的安全性。执行删除操作后,返回受影响的行数,保证数据的整洁性。

#### 2.4.3 批量操作(`BSQL`)
- **事务管理**:支持批量执行插入、更新、删除和查询操作,通过事务管理确保批量操作的原子性,避免数据不一致的问题。
- **合法性验证**:对每个操作进行严格的合法性验证,确保操作符合安全规范,保障系统的稳定性和数据的安全性。
- **多样操作格式**:提供丰富的操作格式,包括新增类、删除类、查询类和更新类,满足不同业务场景的需求。

#### 2.4.4 自定义 SQL 执行(`SQL`)
- **白名单验证**:允许用户自由执行 SQL 语句,但会对 SQL 语句进行严格的合法性验证,只允许执行白名单内的操作(`SELECT`、`INSERT`、`UPDATE`、`DELETE`),保障系统的安全性。
- **事务管理**:使用事务管理保证操作的原子性,确保自定义 SQL 执行的可靠性和数据的一致性。

## 三、显著优势

### 3.1 高度安全
- **多层验证机制**:通过表单令牌验证、签名验证和 SQL 操作白名单验证等多层安全机制,有效抵御非法请求和 SQL 注入攻击,保障数据的安全性。
- **数据加密**:采用 RC4 加密算法对数据进行加密,确保数据在传输过程中的安全性和保密性。

### 3.2 灵活适配
- **多样操作类型**:支持单条操作、批量操作和自定义 SQL 执行,满足不同业务场景的多样化需求,提高系统的适应性和灵活性。
- **灵活查询条件**:查询操作支持灵活的查询条件,可根据用户需求自由定制查询方案,实现精准的数据检索。
- **多数据库支持**:兼容 MariaDB、MSSQL 和 PostgreSQL 等多种主流数据库,方便开发者在不同的数据库环境中使用。

### 3.3 稳定可靠
- **重试机制**:在查询和批量插入操作中采用重试机制,最多重试 3 次,提高操作的成功率和系统的稳定性。
- **事务管理**:对批量操作和自定义 SQL 执行使用事务管理,确保操作的原子性,避免数据不一致的问题。

### 3.4 易于集成
- **统一响应规范**:使用 `jsonResponse` 函数生成统一格式的 JSON 响应,为前端集成和处理提供便利,提高开发效率。
- **模块化设计**:将不同功能封装成独立的函数,如 `executeDatabaseOperation`、`validateSQL` 等,提高代码的可维护性和复用性,方便功能扩展和代码优化。

## 四、总结
`SQLV7.php` 接口以其丰富的功能、卓越的安全性、出色的稳定性和高度的灵活性,成为开发者进行数据库操作的理想选择。无论是简单的数据处理任务,还是复杂的批量操作和自定义 SQL 执行,该接口都能提供高效、安全的解决方案。同时,其对 MariaDB、MSSQL 和 PostgreSQL 等多种数据库的支持,使其能够适应不同的项目需求。在各类需要与数据库交互的项目中,`SQLV7.php` 都将发挥重要作用,为开发者提供可靠的技术支持。

## 五、备注
- 本 PHP 中间件接口需与 nx 线程连接池模块协同使用。最新版本可加入 Q 群 1071098978 获取,我们将不定期进行更新优化。
- 该接口同时适用于易语言版和火山 PC 视窗版,功能完善且全开源,开发者可放心使用。
- 支持二次开发,欢迎开发者分享优化改进方案,共同推动技术进步。




**** 批理 json 格式执行 样式示例 ****

   新增类:[{"operation":"INSERT","table":"表名","columns":["字段1","字段2","字段3"],"values":[["NX中间件","超级简单",666],["php中间件",666,999]]}]
   删除类:[{"operation":"DELETE","table":"中文表","where":{"username":"json6"}},{"operation":"DELETE","table":"中文表","where":{"ca_中英":"234"}}]
   查询类:[{"operation":"SELECT","table":"中文表","columns":["username","中文字段"],"where":{"id":["<",10]},"limit":10}]
   更新类:[{"operation":"UPDATE","table":"中文表","set":{"username":"json666","ca_中英":"234"},"where":{"username":"json"}}]

如想批量多条执行,请参考 删除类,多组json数据拼接

以下是源码,已全部打包,含模块源码和已编译模块,详细例程,php接口文件
NX线程池_源码_全套_520.rar (131 KB, 下载次数: 275, 售价: 5 枚 精币)
我们一起为广大易友做贡献!

评分

参与人数 22好评 +2 精币 +24 收起 理由
kyo9766 + 1 感谢分享,很给力!~
perfectmyt + 1 + 2 支持开源~!感谢分享
浮梦 + 1 感谢分享,很给力!~
pptk + 1 + 2 支持开源~!感谢分享
jc520hll + 1 感谢分享,很给力!~
z134 + 1 感谢分享,很给力!~
ma4747 + 1 感谢分享,很给力!~
cbl521ysys + 1 感谢分享,很给力!~
无尘666 + 1 感谢分享,很给力!~
3266167 + 1 感谢分享,很给力!~
huangdi9569 + 1 感谢分享,很给力!~
liy456 + 1 感谢分享,很给力!~
zjbin1989 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
初阳123 + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
sundanming + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
YunXiGe + 1 感谢分享,很给力!~
洛哥 + 1 感谢分享,很给力!~

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。
结帖率:100% (11/11)

签到天数: 3 天

来自 232楼
 楼主| 发表于 2025-5-21 17:00:32 | 只看该作者   广东省茂名市
本帖最后由 jcos 于 2025-5-27 21:06 编辑

本模块 同样有 火山 视窗 PC 版

可到群下载就行

或在这下载
https://bbs.voldp.com/thread-26051-1-1.html

火山版,同样有 多线程池 和 php中间件(与易语言功能一样)同样开源


20250528 火山版更新:
    1、新增 Oracle 数据支持
    2、修改 查询数据()增加排序参数,升级到此版本,需更新你的参数位置
    3、新增 分页查询
    4、新增 纯数量查询,返回整数
    5、新增 原查询返回值中增加显示 count 数量
    6、新增 sqlite 数据库支持
    7、直接访问接口时,原返回 ERR 1 没有POST数据  修改为显示 404,减少接口暴露风险
    8、批量执行json 和 自由执行sql语句时,统一返回格式,方便前端处理
   9、修改 执行语句 命令时,可以拼接 多条sql语句 并会进行事务执行,同时返回多条结果
10、重写 例程,更直观,更详细





回复 支持 反对

使用道具 举报

签到天数: 3 天

231
发表于 4 小时前 | 只看该作者   新疆维吾尔自治区巴音郭楞蒙古自治州
谢谢分享
回复 支持 反对

使用道具 举报

签到天数: 1 天

230
发表于 15 小时前 | 只看该作者   广东省深圳市
模块为啥这么大? 直接调用了精易模块编译 懒得扣代码了
回复 支持 反对

使用道具 举报

签到天数: 3 天

229
发表于 昨天 23:28 | 只看该作者   广西壮族自治区崇左市
牛逼克拉斯
回复 支持 反对

使用道具 举报

签到天数: 2 天

228
发表于 4 天前 | 只看该作者   浙江省台州市
7777777777777777777777777777777777777
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 1 天

227
发表于 5 天前 | 只看该作者   新疆维吾尔自治区巴音郭楞蒙古自治州
        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:73% (11/15)
226
发表于 2025-6-22 19:05:04 | 只看该作者   湖南省衡阳市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
225
发表于 2025-6-22 18:57:38 | 只看该作者   辽宁省鞍山市
厉害了我的哥
回复 支持 反对

使用道具 举报

224
发表于 2025-6-22 15:34:39 | 只看该作者   河南省濮阳市
回复 支持 反对

使用道具 举报

结帖率:93% (88/95)

签到天数: 3 天

223
发表于 2025-6-20 07:31:06 | 只看该作者   浙江省温州市
jcos 发表于 2025-5-21 17:00
本模块 同样有 火山 视窗 PC 版

可到群下载就行

线程池某线程可以暂停继续吗?
没找到例子?
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
222
发表于 2025-6-19 15:47:19 | 只看该作者   四川省资阳市
学习一下………………………………………………………………
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表