From d9e4de54c76cd19e5efb7d36e0122d606f2ae262 Mon Sep 17 00:00:00 2001 From: zhaoxiang <756958008@qq.com> Date: Mon, 21 Nov 2016 21:28:57 +0800 Subject: [PATCH] =?UTF-8?q?modified=20=E4=BF=AE=E5=A4=8D=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E8=A1=A8=E5=89=8D=E7=BC=80=E5=BC=95=E8=B5=B7=E7=9A=84=E5=BB=BA?= =?UTF-8?q?=E8=A1=A8=E5=92=8C=E6=8F=92=E5=85=A5=E8=A1=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/install/controller/Index.php | 52 +++++++++++++++++++++--- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/application/install/controller/Index.php b/application/install/controller/Index.php index 1da3d54..c4b4314 100644 --- a/application/install/controller/Index.php +++ b/application/install/controller/Index.php @@ -3,6 +3,7 @@ namespace app\install\controller; use app\admin\model\User; use think\Controller; +use think\Log; class Index extends Controller { @@ -139,6 +140,7 @@ class Index extends Controller { $this->executeSQL($db, $dbConfig['DB_PREFIX']); $adminSql = "INSERT INTO `{$dbConfig['DB_PREFIX']}user` (`username`, `nickname`, `password`, `regTime`, `regIp`, `status`) ". "VALUES ('{$adminConfig['name']}','系统管理员','{$adminPass}',".time().",{$regIp},1);"; + Log::write($adminSql,'log'); $db->exec($adminSql); $baseConfig['ADMIN_ID'] = $db->lastInsertId(); } @@ -153,7 +155,7 @@ class Index extends Controller { } $this->writeConfig($baseConfig, 'base', $extraConfPath); if(session('error')){ - $this->error('安装出错', url('index')); + $this->error('安装出错,错误细节请查看Log!', url('index')); }else{ $str = ""; exit($str); @@ -214,20 +216,60 @@ class Index extends Controller { foreach ($sql as $value) { $value = trim($value); if (empty($value)) continue; - if (substr($value, 0, 12) == 'CREATE TABLE') { - $name = preg_replace('/^CREATE TABLE `(\w+)` .*/s', "\\1", $value); - $value = str_replace(" `{$name}", " `{$prefix}{$name}", $value); + if( strpos($value, 'CREATE TABLE') !== false ){ + $name = preg_replace('/^CREATE TABLE `(\w+)` .*/s', '\1', $value); + $value = str_replace("CREATE TABLE `{$name}`", "CREATE TABLE `{$prefix}{$name}`", $value); $msg = "创建数据表{$name}"; if (false !== $db->exec($value)) { + Log::record($value,'log'); showMsg($msg . '...成功', 'success'); } else { + Log::record($value,'error'); showMsg($msg . '...失败!', 'danger'); session('error', true); } - } else { + }elseif ( strpos($value, 'DROP TABLE') !== false ){ + $name = preg_replace('/.*DROP TABLE IF EXISTS `(\w+)` .*/s', '\1', $value); + $value = str_replace(" `{$name}", " `{$prefix}{$name}", $value); + $msg = "删除数据表{$name}"; + if (false !== $db->exec($value)) { + Log::record($value,'log'); + showMsg($msg . '...成功', 'success'); + } else { + Log::record($value,'error'); + showMsg($msg . '...失败!', 'danger'); + session('error', true); + } + }elseif ( strpos($value, 'LOCK TABLES') !== false ){ + $name = preg_replace('/^LOCK TABLES `(\w+)` .*/s', '\1', $value); + $value = str_replace(" `{$name}", " `{$prefix}{$name}", $value); + $msg = "锁定数据表{$name}"; + if (false !== $db->exec($value)) { + Log::record($value,'log'); + showMsg($msg . '...成功', 'success'); + } else { + Log::record($value,'error'); + showMsg($msg . '...失败!', 'danger'); + session('error', true); + } + }elseif ( strpos($value, 'INSERT INTO') !== false ){ + $name = preg_replace('/^INSERT INTO `(\w+)` .*/s', '\1', $value); + $value = str_replace(" `{$name}", " `{$prefix}{$name}", $value); + $msg = "初始化表{$name}数据"; + if (false !== $db->exec($value)) { + Log::record($value,'log'); + showMsg($msg . '...成功', 'success'); + } else { + Log::record($value,'error'); + showMsg($msg . '...失败!', 'danger'); + session('error', true); + } + }else{ + Log::record($value,'debug'); $db->exec($value); } } + Log::save(); } }