开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

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

[2025开源大赛(第八届)] NX线程池、PHP中间件、MySql连接池,全开源,V5.7版

    [复制链接]
结帖率:100% (11/11)
跳转到指定楼层
发表于 7 天前 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   广东省茂名市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
php 中间件,全新版本 V10
支持多种数据库,以下是简单说明
  
## SQLV10概述
SQLV10 是一个功能强大的数据库操作接口,提供安全、高效的数据访问和管理能力。作为 SQLV9 的升级版本,SQLV10 在保持原有功能的基础上,进行了全面优化,显著提升了性能、安全性和用户体验。本报告将详细介绍 SQLV10 接口的功能特点、技术优势和应用场景。
## 产品定位
SQLV10 是一个面向开发者的数据库操作中间件,旨在简化数据库访问流程,提供统一的数据操作接口,同时确保数据访问的安全性和高效性。该接口支持多种主流数据库,适用于各种规模的应用系统,从小型网站到大型企业应用均可使用。
## 核心功能
### 1. 多数据库支持
SQLV10 支持多种主流数据库系统,包括:
- **MySQL/MariaDB**:广泛使用的开源关系型数据库
- **MSSQL**:支持通过 ODBC 和 sqlsrv 两种方式连接
- **PostgreSQL**:功能强大的开源对象关系型数据库
- **SQLite**:轻量级嵌入式数据库
- **Oracle**:企业级关系型数据库管理系统
通过统一的接口设计,开发者可以轻松在不同数据库之间切换,无需修改大量代码。
### 2. 安全的数据访问
SQLV10 采用了多层次的安全防护机制,确保数据访问的安全性:
- **严格类型检查**:使用 PHP 7.4+ 的严格类型声明,提高代码安全性
- **表单令牌验证**:防止 CSRF 攻击和重复提交
- **签名验证机制**:确保请求数据的完整性和真实性
- **SQL 注入防护**:通过参数绑定和预编译语句防止 SQL 注入攻击
- **硬件授权验证**:基于硬件哈希的授权机制,增强系统安全性
- **暴力破解防护**:限制登录尝试次数,防止暴力破解
- **速率限制控制**:防止 API 被滥用,保护系统稳定性
### 3. 高效的数据操作
SQLV10 通过多种优化手段提升数据操作效率:
- **连接池优化**:缓存数据库连接,减少连接创建开销
- **预编译语句缓存**:复用预编译语句,提高查询效率
- **智能重连机制**:自动处理连接断开情况,提高系统稳定性
- **批量操作支持**:支持批量插入、更新和删除操作,减少网络开销
- **事务管理**:支持事务嵌套和错误恢复,确保数据一致性
### 4. 灵活的查询功能
SQLV10 提供多种查询方式,满足不同场景需求:
- **标准查询(QUE)**:支持 SELECT 查询,可指定字段和条件
- **插入操作(INS)**:支持单条和多条数据插入
- **更新操作(UPD)**:支持灵活的数据更新,可指定条件和字段
- **删除操作(DEL)**:支持条件删除,确保数据安全
- **计数查询(COUNT)**:快速获取符合条件的记录数量
- **批量 SQL(BSQL)**:支持批量执行多种 SQL 操作
- **自由 SQL(SQL)**:支持执行自定义 SQL 语句,提供最大灵活性
### 5. 完善的会话管理
SQLV10 提供智能的会话管理机制:
- **智能会话清理**:自动清理过期会话,优化内存使用
- **最大活动会话数控制**:防止系统资源被过度占用
- **会话数据结构优化**:提高会话数据访问效率
- **高效的会话状态管理**:确保会话状态的准确性和一致性
### 6. 强大的管理功能
SQLV10 提供全面的管理功能,方便系统维护:
- **用户授权管理**:支持用户授权、禁用和有效期管理
- **管理员操作**:提供管理员专用接口,支持高级管理功能
- **操作日志记录**:记录关键操作,便于审计和问题排查
- **配置管理**:支持灵活的配置管理,适应不同部署环境
### 7. 性能优化特性
SQLV10 通过多种技术手段提升系统性能:
- **连接池优化**:减少连接创建和销毁的开销
- **查询结果缓存**:缓存常用查询结果,减少数据库负载
- **智能重连机制**:自动处理连接异常,提高系统稳定性
- **批量操作优化**:减少网络往返次数,提高操作效率
## 技术架构
### 1. 整体架构
SQLV10 采用模块化设计,主要包含以下组件:
- **配置管理模块**:负责系统配置的加载和管理
- **安全验证模块**:处理各种安全验证逻辑
- **数据库连接模块**:管理数据库连接和连接池
- **SQL 执行模块**:处理 SQL 语句的解析和执行
- **结果处理模块**:处理查询结果的格式化和返回
- **会话管理模块**:负责会话的创建、维护和清理
- **管理功能模块**:提供系统管理相关功能
### 2. 工作流程
SQLV10 的工作流程如下:
1. **请求接收**:接收客户端发送的请求数据
2. **安全验证**:进行表单令牌验证、签名验证等安全检查
3. **参数解析**:解析请求参数,提取操作类型和数据
4. **数据库连接**:根据配置建立数据库连接
5. **授权验证**:如果启用授权机制,进行硬件授权验证
6. **SQL 执行**:根据操作类型执行相应的 SQL 语句
7. **结果处理**:处理执行结果,格式化返回数据
8. **响应返回**:将处理结果返回给客户端
### 3. 安全机制
SQLV10 采用多层次的安全机制:
- **通信加密**:使用 RC4 算法对通信数据进行加密
- **令牌验证**:使用表单令牌防止 CSRF 攻击
- **签名验证**:使用 MD5 签名确保数据完整性
- **参数绑定**:使用预编译语句和参数绑定防止 SQL 注入
- **硬件授权**:基于硬件哈希的授权机制
- **访问控制**:支持 IP 限制、速率限制等访问控制措施
## 产品优势
### 1. 安全性高
SQLV10 采用多层次的安全防护机制,从通信加密到访问控制,全方位保障数据安全。相比 V9 版本,V10 在安全性方面有显著提升:
- 增强的表单令牌机制,支持有效期和使用次数限制
- 新增硬件授权验证,提供更强的安全保障
- 完善的暴力破解防护和速率限制机制
- 更严格的输入验证和 SQL 注入防护
### 2. 性能优异
SQLV10 通过多种优化手段提升系统性能:
- 连接池优化,减少连接创建开销
- 预编译语句缓存,提高查询效率
- 智能会话清理,优化内存使用
- 批量操作支持,减少网络开销
### 3. 易于使用
SQLV10 提供简洁易用的接口设计:
- 统一的接口设计,简化多数据库操作
- 详细的错误提示和日志记录
- 灵活的配置管理,适应不同部署环境
- 完善的文档和示例代码
### 4. 功能全面
SQLV10 提供全面的数据操作功能:
- 支持多种主流数据库
- 提供丰富的查询和操作方式
- 完善的管理功能
- 灵活的扩展机制
## 应用场景
### 1. Web 应用开发
SQLV10 非常适合 Web 应用开发,特别是需要处理大量数据操作的场景:
- 内容管理系统(CMS)
- 电子商务平台
- 社交网络应用
- 企业管理系统
### 2. 移动应用后端
SQLV10 可以作为移动应用的后端数据接口:
- 提供统一的数据访问接口
- 支持高并发访问
- 确保数据安全性和一致性
### 3. 企业数据集成
SQLV10 可以用于企业数据集成场景:
- 连接多个异构数据源
- 提供统一的数据访问接口
- 支持复杂的数据转换和处理
### 4. API 开发
SQLV10 可以作为 API 开发的基础组件:
- 提供安全的数据访问接口
- 支持多种认证和授权方式
- 提供灵活的数据格式支持
## 版本对比
### SQLV9 vs SQLV10
| 特性 | SQLV9 | SQLV10 |
|------|-------|--------|
| 代码行数 | 1044行 | 1494行(增加43%) |
| 严格类型检查 | 不支持 | 支持 |
| 数据库支持 | 基础支持 | 增强支持,新增连接池优化 |
| 安全机制 | 基础防护 | 多层次防护,新增硬件授权验证 |
| 会话管理 | 基础管理 | 智能管理,支持最大活动会话数控制 |
| 性能优化 | 基础优化 | 全面优化,新增连接池和预编译语句缓存 |
| 错误处理 | 简单处理 | 结构化处理,提供详细错误信息 |
| 管理功能 | 基础功能 | 完善功能,新增管理员操作接口 |
### 主要改进
1. **安全性增强**:
- 增强的表单令牌机制
- 新增硬件授权验证
- 完善的暴力破解防护和速率限制机制
2. **性能优化**:
- 连接池优化
- 预编译语句缓存
- 智能会话清理
3. **功能扩展**:
- 新增管理员操作功能
- 支持批量操作
- 增强的查询结果处理
4. **开发体验改进**:
- 更清晰的错误处理
- 更好的代码可读性
- 统一的接口设计
## 使用指南
### 1. 基本配置
SQLV10 的配置主要包括以下几个部分:
```php
$config = [
' security' => [
' datkey' => 'QQ516221198_QUN1071098978', // 通信密钥(必须修改!)
' token_key' => 'JCOSPDOSTART', // 令牌密钥(建议修改)
' max_session' => 1000, // 最大Session数量
' debug_mode' => true, // 调试模式(生产环境设为false)
' token_max_age' => 60, // 令牌有效期(秒)
' token_max_usage' => 60, // 令牌最大使用次数
],
' mysql' => [
' host' => 'localhost',
' user' => 'json',
' pass' => 'json123',
' port' => '3306',
' charset' => 'utf8mb4',
' dbname' => 'phpsql',
' timeout' => 20,
],
// 其他数据库配置...
];
```
### 2. 基本使用
#### 2.1 获取令牌
```javascript
// 获取令牌
fetch ( ' SQLV10.php', {
method: ' POST',
headers: {
' Content-Type': 'application/x-www-form-urlencoded',
},
body: ' DATA=JCOSPDOSTART'
})
.then (response => response.text ())
.then (token => {
console.log ( ' Token:', token);
// 保存令牌用于后续请求
});
```
#### 2.2 查询数据
```javascript
// 查询数据
const requestData = {
operation: ' QUE', // 查询操作
directOutput: ' 0', // 加密输出
dbType: ' 0', // 数据库类型(0表示MySQL)
hardwareInfo: ' your_hardware_hash', // 硬件信息
softwareId: ' your_software_id', // 软件ID
table: ' users', // 表名
columns: ' id, username, email', // 查询字段
conditions: ' status = ?', // 查询条件
params: [ ' active'] // 参数
};
const formData = new FormData ();
formData.append ( ' DATA', JSON.stringify(requestData));
formData.append ( ' formhash', 'your_formhash');
formData.append ( ' sign', 'your_signature');
fetch ( ' SQLV10.php', {
method: ' POST',
body: formData
})
.then (response => response.text ())
.then (result => {
console.log ( ' Result:', result);
});
```
#### 2.3 插入数据
```javascript
// 插入数据
const requestData = {
operation: ' INS', // 插入操作
directOutput: ' 0', // 加密输出
dbType: ' 0', // 数据库类型(0表示MySQL)
hardwareInfo: ' your_hardware_hash', // 硬件信息
softwareId: ' your_software_id', // 软件ID
table: ' users', // 表名
columns: ' username, email, password', // 插入字段
conditions: ' ?, ?, ?', // 值占位符
params: [ ' john_doe', 'john@example.com', 'hashed_password'] // 参数
};
const formData = new FormData ();
formData.append ( ' DATA', JSON.stringify(requestData));
formData.append ( ' formhash', 'your_formhash');
formData.append ( ' sign', 'your_signature');
fetch ( ' SQLV10.php', {
method: ' POST',
body: formData
})
.then (response => response.text ())
.then (result => {
console.log ( ' Result:', result);
});
```
### 3. 高级功能
  
### 3. 高级功能
#### 3.1 批量操作
```javascript
// 批量操作
const batchData = [
{
operation: ' INSERT',
table: ' users',
columns: [ ' username', 'email'],
values: [
[ ' user1', 'user1@example.com'],
[ ' user2', 'user2@example.com']
]
},
{
operation: ' UPDATE',
table: ' users',
set: { ' status': 'active'},
where: { ' id': ['>', 10]}
}
];
const requestData = {
operation: ' BSQL', // 批量操作
directOutput: ' 0', // 加密输出
dbType: ' 0', // 数据库类型(0表示MySQL)
hardwareInfo: ' your_hardware_hash', // 硬件信息
softwareId: ' your_software_id', // 软件ID
table: batchData // 批量数据
};
const formData = new FormData ();
formData.append ( ' DATA', JSON.stringify(requestData));
formData.append ( ' formhash', 'your_formhash');
formData.append ( ' sign', 'your_signature');
fetch ( ' SQLV10.php', {
method: ' POST',
body: formData
})
.then (response => response.text ())
.then (result => {
console.log ( ' Result:', result);
});
```
#### 3.2 自定义 SQL
```javascript
// 自定义 SQL
const requestData = {
operation: ' SQL', // 自定义 SQL
directOutput: ' 0', // 加密输出
dbType: ' 0', // 数据库类型(0表示MySQL)
hardwareInfo: ' your_hardware_hash', // 硬件信息
softwareId: ' your_software_id', // 软件ID
table: ' SELECT * FROM users WHERE status = ?; SELECT COUNT(*) as total FROM users;', // SQL 语句
params: [ ' active'] // 参数
};
const formData = new FormData ();
formData.append ( ' DATA', JSON.stringify(requestData));
formData.append ( ' formhash', 'your_formhash');
formData.append ( ' sign', 'your_signature');
fetch ( ' SQLV10.php', {
method: ' POST',
body: formData
})
.then (response => response.text ())
.then (result => {
console.log ( ' Result:', result);
});
```
## 最佳实践
### 1. 安全配置
- **修改默认密钥**:部署前务必修改默认的通信密钥和令牌密钥
- **启用硬件授权**:在生产环境中启用硬件授权验证
- **关闭调试模式**:在生产环境中关闭调试模式,避免敏感信息泄露
- **设置合理的令牌有效期**:根据应用场景设置合理的令牌有效期和使用次数限制
### 2. 性能优化
- **使用连接池**:充分利用 SQLV10 的连接池功能,减少连接创建开销
- **批量操作**:对于大量数据操作,使用批量操作接口提高效率
- **合理使用缓存**:对于频繁查询但不常变化的数据,考虑使用缓存
- **优化 SQL 语句**:编写高效的 SQL 语句,避免全表扫描和不必要的计算
### 3. 错误处理
- **捕获和处理异常**:在应用层捕获和处理 SQLV10 返回的错误
- **记录错误日志**:记录关键错误信息,便于问题排查
- **提供友好的错误提示**:向用户提供友好的错误提示,避免暴露系统细节
### 4. 维护建议
- **定期更新**:关注 SQLV10 的更新,及时应用安全补丁和功能改进
- **监控性能**:定期监控系统性能,及时发现和解决性能问题
- **备份数据**:定期备份数据库和配置文件,确保数据安全
- **测试升级**:在升级前进行充分测试,确保兼容性和稳定性
## 常见问题
### 1. 连接问题
**Q: 无法连接到数据库,提示连接失败**
A: 请检查数据库配置是否正确,包括主机名、端口、用户名、密码等。确保数据库服务正在运行,并且网络连接正常。
**Q: 连接超时**
A: 可以尝试增加连接超时时间,或者检查网络状况和数据库服务器负载。
### 2. 安全问题
**Q: 如何提高系统安全性**
A: 建议采取以下措施提高系统安全性:
- 修改默认密钥
- 启用硬件授权验证
- 设置合理的令牌有效期和使用次数限制
- 启用速率限制和暴力破解防护
- 定期更新系统和依赖库
**Q: 如何防止 SQL 注入**
A: SQLV10 已经内置了 SQL 注入防护机制,通过参数绑定和预编译语句防止 SQL 注入。开发者应避免直接拼接 SQL 语句,始终使用参数绑定方式。
### 3. 性能问题
**Q: 查询速度慢**
A: 可以尝试以下优化措施:
- 优化 SQL 语句,避免全表扫描
- 为常用查询字段添加索引
- 使用批量操作减少网络开销
- 启用查询结果缓存
**Q: 系统负载高**
A: 可以尝试以下优化措施:
- 增加连接池大小
- 优化数据库配置
- 使用缓存减少数据库访问
- 考虑数据库分库分表
### 4. 升级问题
**Q: 从 V9 升级到 V10 需要注意什么**
A: 从 V9 升级到 V10 需要注意以下几点:
- V10 引入了严格类型声明,确保调用代码兼容
- 部分函数参数和返回值有所变化,需要相应调整
- 新增的安全机制可能需要额外配置
- 建议在测试环境进行充分测试后再升级生产环境
## 未来展望
SQLV10 作为一个成熟的数据库操作接口,未来将继续在以下方面进行改进和扩展:
### 1. 功能扩展
- **支持更多数据库**:计划支持更多类型的数据库,如 MongoDB、Redis 等
- **增强批量操作**:提供更强大的批量操作功能,支持更复杂的场景
- **数据同步功能**:增加数据同步和复制功能,支持分布式部署
### 2. 性能优化
- **更智能的缓存机制**:引入更智能的缓存策略,提高系统性能
- **连接池优化**:进一步优化连接池管理,提高资源利用率
- **查询优化**:增加查询优化建议功能,帮助开发者编写更高效的 SQL
### 3. 安全增强
- **多因素认证**:支持多因素认证,提高系统安全性
- **更细粒度的权限控制**:提供更细粒度的权限控制,满足不同场景需求
- **安全审计**:增加安全审计功能,记录所有关键操作
### 4. 开发体验
- **更完善的文档**:提供更详细的文档和示例代码
- **调试工具**:开发专门的调试工具,帮助开发者快速定位问题
- **性能分析**:提供性能分析功能,帮助开发者优化应用性能
## 总结
SQLV10 是一个功能强大、安全可靠的数据库操作接口,通过多层次的防护机制、高效的性能优化和全面的功能支持,为开发者提供了一个安全、高效、易用的数据访问解决方案。相比 V9 版本,V10 在安全性、性能和功能方面都有显著提升,是数据库操作接口的理想选择。
无论是小型网站还是大型企业应用,SQLV10 都能满足各种数据操作需求,帮助开发者快速构建安全、高效的应用系统。我们建议所有用户尽快升级到 V10 版本,以享受更优质的数据库操作体验。
---
*本报告基于 SQLV10.php 的代码分析和功能测试编写,旨在帮助用户全面了解 SQLV10 接口的功能特性和使用方法。*


除了php版本全新研发外,nx线程池和mysq连接池也是稳如老狗
这都是两年多来的更新成果


好了,废话说到这,上源码
(内含所有 源码 及 例程,使用说明等等)
游客,如果您要查看本帖隐藏内容请回复
我们一起为广大易友做贡献!

点评

有个小bug,自行打开源码在初始化那,改一下 通讯密钥变量为空 的判断就行。不影响便用,就是通讯密钥和令牌密钥都填写了的话。   广东省茂名市  发表于 6 天前

评分

参与人数 11好评 +8 精币 +17 收起 理由
fengyishen + 1 支持开源~!感谢分享
perfectmyt + 1 + 2 支持开源~!感谢分享
辽阳小哲 + 1 + 2 支持开源~!感谢分享
cui870222829 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
梦中以南 + 1 + 2 YYDS~!
kyo9766 + 1 感谢分享,很给力!~
airaz + 1 + 3 YYDS~!
116154801 + 1 支持开源~!感谢分享
wujian321 + 1 + 3 支持开源~!感谢分享
吃干饭的锅 + 1 + 2 支持开源~!感谢分享

查看全部评分


结帖率:100% (11/11)

签到天数: 9 天

来自 267楼
 楼主| 发表于 3 天前 | 只看该作者   广东省茂名市
chboy 发表于 2025-10-9 15:55
令牌密钥的值可以换成什么
我换了个很多值,改了就提示链接失败了。(PHP和易语言一起改的) ...

有bug,改一下,或到群下新的...

  
子程序名返回值类型公开备 注
初始化逻辑型 使用前需调用,连接同一地址接口时,仅需初始化一次
参数名类 型参考可空数组备 注
url路径文本型php中间件在网站中的路径,比如 https://nx998.com/sqlv10.php(建议改名)
通信密钥文本型默认:QQ516221198_QUN1071098978 建议修改,但必须与中间件一致
令牌密钥文本型默认:JCOSPDOSTART 建议修改,但必须与中间件一致
gzip传输逻辑型默认关闭,传输数据大时建议开启(需web服务器支持gzip扩展)
gzip地址文本型默认:运行目录() ,可指定 gzip.dll 文件夹路径
软件标识文本型不同软件标识不同,导致授权码不相同,每个软件务必唯一,并且请勿随意更改
内存优化整数型默认:0=关闭,单位秒,时间间隔,避免优化太频繁,建议 120秒 以上
提示信息文本型返回提示信息
如果真 (删全部空 (软件标识)“”)
提示信息 = “软件标识是本软件唯一标识,不能为空”
返回 ()
销毁 ()
集_pdoUrl = url路径
集_间隔优化 = 内存优化
集_软件标识 = 删首尾空 (软件标识)
如果 (删首尾空 (通信密钥)“” 是否为空 (通信密钥))
集_通信密钥 = “QQ516221198_QUN1071098978”
集_通信密钥 = 通信密钥
如果 (删首尾空 (令牌密钥)“” 是否为空 (令牌密钥))
集_令牌密钥 = “JCOSPDOSTART”
集_令牌密钥 = 令牌密钥

如果真 (是否为空 (gzip传输) gzip传输 ≠ )
集_gzip启用 = 真
如果真 (文件是否存在 (gzip地址 + “gzip.dll”))
写到文件 (gzip地址 + “gzip.dll”, #gzipdll )
NX_gzip路径 = gzip地址

集_formhash = 获取通信令牌 (集_Cookie)
如果真 (取文本长度 (集_formhash) = 10)
集_授权码 = 获取授权码 ()
提示信息 = “初始化成功”
返回 ()
提示信息 = “初始化失败...请检查设置或网络!”
返回 ()

回复 支持 反对

使用道具 举报

结帖率:80% (8/10)

签到天数: 6 天

266
发表于 24 秒前 | 只看该作者   山东省烟台市
哈哈哈哈哈哈哈哈哈哈与与一会哈或或或或或或或或或
回复 支持 反对

使用道具 举报

签到天数: 1 天

265
发表于 16 分钟前 | 只看该作者   福建省厦门市
超出了知识范围,无奈
回复 支持 反对

使用道具 举报

签到天数: 11 天

264
发表于 1 小时前 | 只看该作者   上海市上海市
大神啊,膜拜,给你点赞了
回复 支持 反对

使用道具 举报

结帖率:67% (8/12)

签到天数: 5 天

263
发表于 1 小时前 | 只看该作者   江苏省苏州市
6666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:73% (22/30)

签到天数: 5 天

262
发表于 9 小时前 | 只看该作者   湖南省怀化市
666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 12 天

261
发表于 10 小时前 | 只看该作者   湖南省郴州市
jcos 发表于 2025-10-9 20:01
有bug,改一下,或到群下新的...

[e=4].版本 2

为空不就是=""吗?什么情况下这两个判断值会不同?

点评

有时会有奇遇....   广东省茂名市  发表于 9 小时前
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 12 天

260
发表于 10 小时前 | 只看该作者   湖南省郴州市
看本帖隐藏内容
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

259
发表于 昨天 21:37 | 只看该作者   山西省运城市
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 2 天

258
发表于 昨天 20:54 | 只看该作者   河北省廊坊市
废话说到这,上源码
回复 支持 反对

使用道具 举报

签到天数: 1 天

257
发表于 昨天 20:41 | 只看该作者   河南省郑州市
感谢开源
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

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

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

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