# mysql-helper **Repository Path**: zjkal/mysql-helper ## Basic Information - **Project Name**: mysql-helper - **Description**: 一个便捷的MySQL导入导出的助手类库。 a mysql import and export helper library. - **Primary Language**: PHP - **License**: MIT - **Default Branch**: main - **Homepage**: https://github.com/zjkal/mysql-helper - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-09-02 - **Last Updated**: 2024-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: PHP, MySQL, 导出, 导入, Composer ## README

MysqlHelper

中文 | English

License PHP Version Require Latest Stable Version Total Downloads GitHub Workflow Status

`MysqlHelper` 是一个便捷的`通过PHP导入和导出Mysql数据库表结构和数据`的工具,可以快速实现mysql的数据库的导入和导出. 此类库旨在提供轻量化便捷的mysql导入导出, 开发初衷是web应用安装程序和插件类应用的数据结构导入. 因此没有做数据分批, 大量数据的导入导出并不适合. ## 🧩特性 - 简单易用: 仅依赖`mysqlli`扩展,`开箱即用` - 灵活操作: 兼容主流框架,使用更方便 - 长期维护: 作者为自由职业者,保证项目的`长期稳定`和`持续更新` ## 🚀安装 通过Composer导入类库 ```bash composer require zjkal/mysql-helper ``` ## 🌈使用文档 ### 1. 实例化 *方式一: 常规方法* ```php use zjkal\MysqlHelper; $mysql = new MysqlHelper('root', 'passwd', 'dbname', '127.0.0.1', '3306', 'utf8mb4', 'wp_'); ``` *方式二: 实例化后,通过setConfig方法设置数据库配置* ```php $mysql = new MysqlHelper(); $mysql->setConfig(['username' => 'root', 'password' => 'passwd', 'database' => 'dbname']); ``` MysqlHelper针对常用的框架做了兼容,可以直接使用框架的数据库配置, 比如`ThinkPHP`框架或`Laravel`框架 ```php $mysql = new MysqlHelper(); $config = config('database.connections.mysql'); $mysql->setConfig($config); ``` ### 2. 导出数据 * 如果实例化时, 已经设置了表前缀,导出的表名可以不用带前缀 ```php //导出数据库(包含表结构和数据) $mysql->exportSqlFile('test.sql'); //仅导出数据库表结构 $mysql->exportSqlFile('test.sql', false); //导出指定表的结构和数据 $mysql->exportSqlFile('test.sql', true, ['table1', 'table2']); //导出数据库所有表,并且添加禁用外键检查的SQL语句 $mysql->exportSqlFile('test.sql', true, [], true); //php8以上可以更简洁的写法: $mysql->exportSqlFile('test.sql', disableForeignKeyChecks: true); ``` ### 3. 导入数据 * 如果需要在导入过程中自定义表前缀, 则sql文件中的表前缀需要使用`__PREFIX__`占位符代替 * 如果实例化时, 已经设置了表前缀, 则可以不用传入第二个参数 * 增加了数据导入时的参数, 用于设置是否删除已存在的表, 默认不删除, 一般用于数据恢复. ```php //导入数据库 $mysql->importSqlFile('test.sql'); //导入数据库,并自动替换表前缀 $mysql->importSqlFile('test.sql', 'wp_'); //导入数据库,不替换前缀, 并且如果表已经存在,则先删除 $mysql->importSqlFile('test.sql', '', true); //php8以上可以更简洁的写法: $mysql->importSqlFile('test.sql', dropTableIfExists: true); ``` ## 📃更新日志 > v1.0.9 2024年12月5日 > * 增加了数据导入时的参数, 用于设置是否删除已存在的表 > v1.0.8 2024年11月23日 > * 修复了导入表时重复替换忽略语句的BUG > v1.0.7 2024年10月4日 > * 增加导入的稳定性:过滤空行 > v1.0.6 2024年8月27日 > * 导入时增加了判断是否存在同名表的逻辑 > v1.0.5 2024年6月14日 > * 增加了在导出时可以设置禁用外键检查的参数
点击查看更多 > v1.0.4 2024年4月19日 > * 优化了.sql文件中注释的过滤规则 > v1.0.3 2023年12月9日 > * 实例化时如果已经设置了表前缀,导出的表名可以不包含前缀 > v1.0.2 2023年9月23日 > * 增加了数据导出的稳定性 > v1.0.1 2023年9月10日 > * 修复了在Thinkphp框架下端口识别错误的BUG > * 增加了导入的稳定性 > v1.0.0 2023年9月2日 > * 首次发布
## 😎开发者们
zjkal
zjkal
fedsin
fedsin
## 🐧QQ频道 QQ频道-世界上最好的编程语言 ## 📖开源协议 MysqlHelper遵循[MIT开源协议](https://github.com/zjkal/mysql-helper/blob/main/LICENSE), 意味着您无需任何授权, 即可免费将MysqlHelper应用到您的项目中