精易论坛

标题: NX线程池 MySql连接池 PHP中间件 开源免费 V4.5 支持JSON批量 [打印本页]

作者: jcos    时间: 2025-4-21 18:56
标题: NX线程池 MySql连接池 PHP中间件 开源免费 V4.5 支持JSON批量
这两天更新有些频繁,那就不上传了,在这简单介绍下新功能

一、php中间件(易语言版 和 火山视窗版 同步)
1、新增 json 批量提交执行
2、大改 php接口功能,详情如下:

SQLV5.php 接口功能介绍
## 一、概述
`SQLV5.php` 是一个基于 PHP 开发的强大数据库操作接口,它提供了一系列安全且高效的方式来处理数据库的增删改查操作,同时支持批量操作和用户自定义 SQL 执行。该接口结合了会话管理、数据加密、签名验证等功能,确保数据交互的安全性和完整性。

## 二、核心功能介绍

### 2.1 基础环境设置
- **会话管理**:通过 `session_start()` 启动会话,为后续的表单令牌验证和会话管理提供基础。
- **时区和编码设置**:将时区设置为北京时间,同时将 PHP 脚本的默认字符编码和输出编码都设置为 UTF - 8,确保在不同环境下数据的正确显示和处理。
- **响应格式设置**:通过 `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` 进行表单令牌验证,包括长度验证和会话中是否存在验证,确保请求的合法性。
- **签名验证**:使用 `getSignature` 函数生成签名,并与请求中的签名进行比对,防止数据被篡改。
- **数据加密**:使用 RC4 加密算法对数据进行加密和解密,同时支持十六进制编码和 Base64 编码,确保数据在传输过程中的安全性。

### 2.4 数据库操作功能

#### 2.4.1 单条操作
- **查询操作(`QUE`)**:支持灵活的查询条件,可根据用户输入的 SQL 片段构建查询语句,并进行重试机制,最多重试 3 次,提高操作的成功率。
- **插入操作(`INS`)**:验证插入 SQL 的合法性后,执行插入操作,并返回受影响的行数和最后插入的 ID。
- **更新操作(`UPD`)**:构建更新 SQL 语句,验证合法性后执行更新操作,返回受影响的行数。
- **删除操作(`DEL`)**:验证删除 SQL 的合法性后,执行删除操作,返回受影响的行数。

#### 2.4.2 批量操作(`BSQL`)
- 支持批量执行插入、更新、删除和查询操作,通过事务管理确保批量操作的原子性,即要么全部成功,要么全部失败。
- 对每个操作进行合法性验证,确保操作的安全性。
- 格式如下:
新增类:[{"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数据拼接

#### 2.4.3 用户自定义 SQL 执行(`SQL`)
- 允许用户自由执行 SQL 语句,但会对 SQL 语句进行合法性验证,确保只执行白名单内的操作(`SELECT`、`INSERT`、`UPDATE`、`DELETE`)。
- 使用事务管理,保证操作的原子性。
- 可批量 拼接语句执行

## 三、优势与强大之处

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

### 3.2 灵活性强
- **多种操作类型**:支持单条的增删改查操作、批量操作和用户自定义 SQL 执行,满足不同的业务需求。
- **灵活的查询条件**:查询操作支持灵活的查询条件,可根据用户输入的 SQL 片段构建查询语句。

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

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

## 四、总结
`SQLV5.php` 接口凭借其丰富的功能、强大的安全性和良好的稳定性,为开发者提供了一个高效、安全的数据库操作解决方案。无论是简单的单条操作,还是复杂的批量操作和自定义 SQL 执行,都能轻松应对,适用于各种需要与数据库进行交互的项目。

#### 五. 备注
- php中间件接口,需要配合 nx线程连接池 模块使用,最新版可加群获取,会不定时更新
- 该接口 适用 易语言版 和 火山PC视窗版,目前功能较为完善,全开源,放心使用
- 支持二开,建议也分享出来给大家使用,谢谢
- Q群 1071098978


上一版本全部源码
易语言版https://125.confly.eu.org/forum.php?mod=viewthread&tid=14852450
火山视窗https://125.confly.eu.org/forum.php?mod=viewthread&tid=14853844
我们一起为广大易友做贡献!

作者: mytiger    时间: 2025-4-22 08:30
感谢分享
作者: 没事瞎琢磨    时间: 2025-4-22 08:55
感谢分享
作者: jysoft2022    时间: 2025-4-22 09:29
感谢分享
作者: zzh233    时间: 2025-4-22 09:36
又更新了啊 增加json提交了吗 大神
作者: zzh233    时间: 2025-4-22 09:38
zzh233 发表于 2025-4-22 09:36
又更新了啊 增加json提交了吗 大神

我加群好多次 能不能通过一下 热泪盈眶  着急
作者: zzh233    时间: 2025-4-22 10:23
能不能群通过一下 万分感谢
作者: jcos    时间: 2025-4-22 10:51
zzh233 发表于 2025-4-22 10:23
能不能群通过一下 万分感谢


不好意思,,刚才忙,没看qq
作者: zzh233    时间: 2025-4-22 11:11
jcos 发表于 2025-4-22 10:51
不好意思,,刚才忙,没看qq

麻烦点一下同意 加了几十次了
作者: zzh233    时间: 2025-4-22 12:49
zzh233 发表于 2025-4-22 11:11
麻烦点一下同意 加了几十次了

没有啊 奇怪啊

作者: zzh233    时间: 2025-4-22 13:45
jcos 发表于 2025-4-22 10:51
不好意思,,刚才忙,没看qq

怎么都进不去 为什么那 而且我看人数也没有变化
作者: jcos    时间: 2025-4-22 14:47
zzh233 发表于 2025-4-22 13:45
怎么都进不去 为什么那 而且我看人数也没有变化

问题是我现在见到申请的都同意通过了,怪事,那加我q,我拉你进
作者: zzh233    时间: 2025-4-22 15:13
jcos 发表于 2025-4-22 14:47
问题是我现在见到申请的都同意通过了,怪事,那加我q,我拉你进

我的锅 用手机qq加就可以了 然后退出pc 重新登录就可以了  万分感谢
作者: 网络注册会员    时间: 2025-4-22 21:33
支持一下
作者: jy55511    时间: 2025-4-23 08:50
支持一下
作者: 我的学习    时间: 2025-4-23 14:09
围观大佬~
作者: xiaokang3458    时间: 2025-4-23 15:36
支持一下
作者: clearlove    时间: 2025-4-23 15:44
感谢分享,很给力!~
作者: clearlove    时间: 2025-4-23 15:44
支持开源~!感谢分享
作者: 面具,    时间: 2025-4-23 21:45

作者: 15158930038    时间: 2025-4-23 22:13
非常支持
作者: ccerty    时间: 2025-4-24 09:20
支持开源~!感谢分享
作者: 逆神者一方    时间: 2025-4-26 17:32
感谢分享
作者: lrmsdyjd    时间: 2025-4-27 03:19
66666666666666666666666666666666666666
作者: 15158930038    时间: 2025-4-27 21:06
非常支持
作者: tszc50    时间: 2025-4-28 05:53
我们一起为广大易友做贡献
作者: 曦月    时间: 2025-4-28 20:57
论坛有你更精彩
作者: wangkun2n    时间: 2025-4-29 16:14
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
作者: xiaotang8899    时间: 2025-4-30 03:16
6666666666666666
作者: 不苦小和尚    时间: 2025-4-30 09:24
SQL SERVER不支持吗
作者: q35588    时间: 2025-4-30 15:24
6666666666666666
作者: 追梦11177012    时间: 2025-5-1 06:51
论坛有你更精彩
作者: 980909liuliu    时间: 2025-5-3 22:56
qwr qw zd as as d
作者: 15158930038    时间: 2025-5-6 00:34
非常支持
作者: maoxu789    时间: 2025-5-10 21:54
非常完美
作者: maoxu789    时间: 2025-5-10 21:55
不知道能不能再类里调用
作者: maoxu789    时间: 2025-5-10 22:01
加群了 麻烦同意下哈

作者: yui1200    时间: 2025-5-11 11:04
加群了 麻烦同意下哈
作者: 17377771228    时间: 2025-5-14 19:55
加群了 麻烦同意下哈
作者: 418235144    时间: 2025-5-19 12:56
论坛有你更精彩

作者: gao110108    时间: 2025-5-20 09:25

加群了 麻烦同意下哈
作者: 725H    时间: 2025-5-20 10:18
加群了 麻烦同意下哈
作者: 昆山星期五    时间: 2025-5-21 08:38
谢谢分享,感觉不错
作者: 网络注册网员    时间: 2025-5-31 09:38
学习了学习了
作者: 网络注册网员    时间: 2025-5-31 09:38

作者: kyo9766    时间: 2025-6-12 09:21
很好用的中间件,感谢分享
作者: lm88818    时间: 2025-6-16 14:43
学习了学习了
作者: lm88818    时间: 2025-6-16 14:43
学习了学习了
作者: ruanmeizi6    时间: 2025-6-29 18:05
如此坚定,像是下定了某种决心




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4