Skip to content

Commit d640716

Browse files
committed
优化安装
1 parent 288e482 commit d640716

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

application/install/controller/IndexController.php

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -81,43 +81,43 @@ public function setup3()
8181
if ($data['password'] != $data['password2']) {
8282
install_show_msg('重复密码不匹配!', false);
8383
}
84-
//检查数据库
85-
$link = @mysql_connect($data['db']['hostname'] . ':' . $data['db']['hostport'], $data['db']['username'], $data['db']['password']);
86-
if (!$link) {
84+
85+
// 缓存数据库配置
86+
session('db_config', $data['db']);
87+
88+
// 防止不存在的数据库导致连接数据库失败
89+
$db_name = $data['db']['database'];
90+
unset($data['db']['database']);
91+
92+
// 创建数据库连接
93+
$db_instance = Db::connect($data['db']);
94+
// 检测数据库连接
95+
try{
96+
$db_instance->execute('select version()');
97+
}catch(\Exception $e){
8798
install_show_msg('数据库连接失败,请检查连接信息是否正确!', false);
8899
}
89-
$mysqlInfo = mysql_get_server_info($link);
90-
if ($mysqlInfo < '5.1.0') {
91-
install_show_msg('mysql版本低于5.1,无法继续安装!', false);
92-
}
93100

94-
$status = @mysql_select_db($data['db']['database'], $link);
95-
if (!$status) {
96-
//尝试创建数据库
97-
$sql = "CREATE DATABASE IF NOT EXISTS `" . $data['db']['database'] . "` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
98-
if (!mysql_query($sql)) {
99-
install_show_msg('数据库' . $data['db']['database'] . '自动创建失败,请手动建立数据库!', false);
100-
}
101-
mysql_select_db($data['db']['database'], $link);
101+
$result = $db_instance->execute('SELECT * FROM information_schema.schemata WHERE schema_name="'.$db_name.'"');
102+
if ($result) {
103+
install_show_msg('该数据库已存在,请更换名称!', false);
102104
}
103-
install_show_msg('数据库检查创建完成...');
104105

106+
// 创建数据库
107+
$sql2 = "CREATE DATABASE IF NOT EXISTS `{$db_name}` DEFAULT CHARACTER SET utf8";
108+
$db_instance->execute($sql2) || install_show_msg($db_instance->getError(), false);
105109
//修改数据库配置文件
106-
write_config($data['db']);
107-
//安装数据库
110+
write_config(session('db_config'));
111+
$db_instance2 = Db::connect(session('db_config'));
112+
// 开始安装
108113
$file = './wemall7.sql';
109114
$sqlData = get_mysql_data($file, '', '');
110115
foreach ($sqlData as $sql) {
111-
$rst = mysql_query($sql);
112-
113-
if ($rst === false) {
114-
install_show_msg(mysql_error(), false);
115-
}
116+
$db_instance2->execute($sql);
116117
}
117-
//连接数据库
118-
Db::connect($data['db']);
118+
119119
//创建超级管理员
120-
Db::name('admin')->where('id',1)->update(['username' => $data['username'],'password'=>md5($data['password'])]);
120+
$db_instance2->name('admin')->where('id',1)->update(['username' => $data['username'],'password'=>md5($data['password'])]);
121121
install_show_msg('超级管理员创建完成...');
122122

123123
//创建文件锁

0 commit comments

Comments
 (0)