开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 336|回复: 23
收起左侧

[微动态] NX线程池 MySql连接池 PHP中间件 开源免费 V4.5 支持JSON批量

[复制链接]
回帖奖励 178 枚 精币 回复本帖可获得 2 枚 精币奖励! 每人限 1 次(中奖概率 80 %)
结帖率:100% (11/11)
发表于 3 天前 | 显示全部楼层 |阅读模式   广东省茂名市
这两天更新有些频繁,那就不上传了,在这简单介绍下新功能

一、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://bbs.125.la/forum.php?mod=viewthread&tid=14852450
火山视窗https://bbs.125.la/forum.php?mod=viewthread&tid=14853844
我们一起为广大易友做贡献!
单选投票, 共有 17 人参与投票

距结束还有: 362 天6 小时35 分钟

您所在的用户组没有投票权限
结帖率:100% (2/2)

签到天数: 19 天

发表于 3 小时前 | 显示全部楼层   浙江省绍兴市

回帖奖励 +2 枚 精币

支持开源~!感谢分享
回复

使用道具 举报

签到天数: 14 天

发表于 昨天 22:13 | 显示全部楼层   贵州省*

回帖奖励 +2 枚 精币

非常支持
回复

使用道具 举报

签到天数: 2 天

发表于 昨天 21:45 | 显示全部楼层   江西省南昌市

回帖奖励 +2 枚 精币

回复

使用道具 举报

结帖率:100% (4/4)

签到天数: 4 天

发表于 昨天 15:44 | 显示全部楼层   山东省枣庄市

回帖奖励 +2 枚 精币

支持开源~!感谢分享
回复

使用道具 举报

结帖率:100% (4/4)

签到天数: 4 天

发表于 昨天 15:44 | 显示全部楼层   山东省枣庄市
感谢分享,很给力!~
回复

使用道具 举报

签到天数: 7 天

发表于 昨天 15:36 | 显示全部楼层   河北省邢台市

回帖奖励 +2 枚 精币

支持一下
回复

使用道具 举报

结帖率:75% (3/4)

签到天数: 2 天

发表于 昨天 14:09 | 显示全部楼层   四川省*

回帖奖励 +2 枚 精币

围观大佬~
回复

使用道具 举报

结帖率:0% (0/1)

签到天数: 10 天

发表于 昨天 08:50 | 显示全部楼层   四川省成都市

回帖奖励 +2 枚 精币

支持一下
回复

使用道具 举报

结帖率:75% (3/4)

签到天数: 12 天

发表于 前天 21:33 | 显示全部楼层   河北省石家庄市

回帖奖励 +2 枚 精币

支持一下
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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