author:咔咔
wechat:fangkangfk
用了很多的自动安装数据库的项目了,今天也来写一个,只是一个简单版本,可以按照这个思路来创建适合自己项目的安装数据库
源码地址问价:
https://download.csdn.net/download/fangkang7/10799886
首先创建俩个文件
我们可以先看看数据库配置的写法,这里没有使用return
这里有三个函数,简单的解释一下
is_writable()判断文件是否可以写入
我们在看看有没有写入
下来就是连接数据库创建表
由于myqli_query()不支持多条同时插入,所以我们就需要使用循环来插入数据库
我们可以看看数据库
我们就以install.lock为判断点,当这个文件存在时,就需要在进行安装,直接跳转到您已经安装过的页面
我们在安装一次,ok
这个功能最复杂的就是数据库的sql文件写入,其他的按照自己的项目需求来写即可
来一份源码:
<?PHP
$filename="dbconfig.PHP";
$fileLock = 'install.lock';
//配置文件内容
$config='<?PHP';
$config.="\n";
$config.='$host="'.$_POST["host"].'";';
$config.="\n";
$config.='$user="'.$_POST["username"].'";';
$config.="\n";
$config.='$pass="'.$_POST["password"].'";';
$config.="\n";
$config.='$dbname="'.$_POST["dbname"].'";';
$config.="\n";
$config.='$flag="'.$_POST["flag"].'";';
$config.="\n";
$config.="?>";
if(file_exists($fileLock)){
echo "<script>window.location='ok.PHP';</script>";
die;
}
if(is_writable($filename)){//检测是否有权限可写
$handle=fopen($filename,"w+");
fwrite($handle,$config);
// //连接数据库
include_once($filename);
if(!@$link=MysqLi_connect($host,$user,$pass)){
echo "数据库连接失败,<a href='install.PHP'>返回设置</a>";
}else{
MysqLi_query($link,"create database if not exists `$dbname`");
MysqLi_select_db($link,$dbname);
//建表语句
$sql[]="CREATE TABLE IF NOT EXISTS `".$flag."access` (
`role_id` smallint(6) unsigned NOT NULL,`node_id` smallint(6) unsigned NOT NULL,`level` tinyint(1) NOT NULL,`module` varchar(50) DEFAULT NULL,KEY `groupId` (`role_id`),KEY `nodeId` (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
$sql[]="CREATE TABLE IF NOT EXISTS `".$flag."node` (
`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`title` varchar(50) DEFAULT NULL,`status` tinyint(1) DEFAULT '0',`remark` varchar(255) DEFAULT NULL,`sort` smallint(6) unsigned DEFAULT NULL,`pid` smallint(6) unsigned NOT NULL,`level` tinyint(1) unsigned NOT NULL,PRIMARY KEY (`id`),KEY `level` (`level`),KEY `pid` (`pid`),KEY `status` (`status`),KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
$sql[]="CREATE TABLE IF NOT EXISTS `".$flag."role` (
`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,`pid` smallint(6) DEFAULT NULL,`status` tinyint(1) unsigned DEFAULT NULL,KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
$sql[]="CREATE TABLE IF NOT EXISTS `".$flag."role_user` (
`role_id` mediumint(9) unsigned DEFAULT NULL,`user_id` char(32) DEFAULT NULL,KEY `group_id` (`role_id`),KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
foreach ($sql as $value) {
MysqLi_query($link,$value);
}
echo "<script>window.location='index.PHP';</script>";
$myfile = fopen("install.lock","w");
}
}else{
echo "您没有权限操作。";
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。