chenyongze / parse-sql-file
可以读取sql文件,并获得纯sql语句
dev-master
2017-05-01 00:06 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-12-19 07:26:51 UTC
README
这是一个简单易用的PHP类库,可以读取sql文件,并获得纯sql语句。
支持
经测试,从Navicat for MySql 和 phpMyAdmin导出的sql文件均可读取。
##安装
composer require chenyongze/parse-sql-file:dev-master
使用
- 导入类库:
require_once __DIR__.'./../vendor/autoload.php'; use Yongze\ParseSql\Sql;
- 直接调用静态方法:
Sql::getSqlFromFile($file_path)
默认已数组形式返回sql语句
Sql::getSqlFromFile($file_path);
array(8) { [0]=> string(24) "SET FOREIGN_KEY_CHECKS=0" [1]=> string(38) "DROP TABLE IF EXISTS `my_plugin_hello`" [2]=> string(251) "CREATE TABLE `my_plugin_hello` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '' COMMENT '名人', `said` text NOT NULL COMMENT '名言', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8" [3]=> string(146) "INSERT INTO `my_plugin_hello` VALUES ('1', '网络', '生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。')" [4]=> string(176) "INSERT INTO `my_plugin_hello` VALUES ('2', '网络', '活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。')" [5]=> string(122) "INSERT INTO `my_plugin_hello` VALUES ('3', '爱迪生', '天才是百分之一的灵感加百分之九十九的汗水。')" [6]=> string(128) "INSERT INTO `my_plugin_hello` VALUES ('4', '美华纳', '勿问成功的秘诀为何,且尽全力做你应该做的事吧。')" [7]=> string(101) "INSERT INTO `my_plugin_hello` VALUES ('5', '陶铸', '如烟往事俱忘却,心底无私天地宽')" }
以单条语句返回
只需将第二个参数设为
true
即可。
Sql::getSqlFromFile($file_path, true);
string(994) "SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS `my_plugin_hello`;CREATE TABLE `my_plugin_hello` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '' COMMENT '名人', `said` text NOT NULL COMMENT '名言', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;INSERT INTO `my_plugin_hello` VALUES ('1', '网络', '生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。');INSERT INTO `my_plugin_hello` VALUES ('2', '网络', '活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。');INSERT INTO `my_plugin_hello` VALUES ('3', '爱迪生', '天才是百分之一的灵感加百分之九十九的汗水。');INSERT INTO `my_plugin_hello` VALUES ('4', '美华纳', '勿问成功的秘诀为何,且尽全力做你应该做的事吧。');INSERT INTO `my_plugin_hello` VALUES ('5', '陶铸', '如烟往事俱忘却,心底无私天地宽');"
替换表前缀
有时候我们读取sql文件时,可能想要替换表前缀,那么可以添加第三个参数。
Sql::getSqlFromFile($file_path, true, array('my_' => 'me_'));
array(8) { [0]=> string(24) "SET FOREIGN_KEY_CHECKS=0" [1]=> string(38) "DROP TABLE IF EXISTS `me_plugin_hello`" [2]=> string(251) "CREATE TABLE `me_plugin_hello` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '' COMMENT '名人', `said` text NOT NULL COMMENT '名言', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8" [3]=> string(146) "INSERT INTO `me_plugin_hello` VALUES ('1', '网络', '生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。')" [4]=> string(176) "INSERT INTO `me_plugin_hello` VALUES ('2', '网络', '活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。')" [5]=> string(122) "INSERT INTO `me_plugin_hello` VALUES ('3', '爱迪生', '天才是百分之一的灵感加百分之九十九的汗水。')" [6]=> string(128) "INSERT INTO `me_plugin_hello` VALUES ('4', '美华纳', '勿问成功的秘诀为何,且尽全力做你应该做的事吧。')" [7]=> string(101) "INSERT INTO `me_plugin_hello` VALUES ('5', '陶铸', '如烟往事俱忘却,心底无私天地宽')" }
如果你有更好的想法,不妨一起完善它吧,虽然是很微不足道的东西^_^