mirror of
https://gitee.com/apiadmin/ApiAdmin.git
synced 2025-04-06 03:58:00 +08:00
modified 修复因为表前缀引起的建表和插入表数据的BUG
This commit is contained in:
parent
177b2c91f1
commit
d9e4de54c7
@ -3,6 +3,7 @@ namespace app\install\controller;
|
|||||||
|
|
||||||
use app\admin\model\User;
|
use app\admin\model\User;
|
||||||
use think\Controller;
|
use think\Controller;
|
||||||
|
use think\Log;
|
||||||
|
|
||||||
class Index extends Controller {
|
class Index extends Controller {
|
||||||
|
|
||||||
@ -139,6 +140,7 @@ class Index extends Controller {
|
|||||||
$this->executeSQL($db, $dbConfig['DB_PREFIX']);
|
$this->executeSQL($db, $dbConfig['DB_PREFIX']);
|
||||||
$adminSql = "INSERT INTO `{$dbConfig['DB_PREFIX']}user` (`username`, `nickname`, `password`, `regTime`, `regIp`, `status`) ".
|
$adminSql = "INSERT INTO `{$dbConfig['DB_PREFIX']}user` (`username`, `nickname`, `password`, `regTime`, `regIp`, `status`) ".
|
||||||
"VALUES ('{$adminConfig['name']}','系统管理员','{$adminPass}',".time().",{$regIp},1);";
|
"VALUES ('{$adminConfig['name']}','系统管理员','{$adminPass}',".time().",{$regIp},1);";
|
||||||
|
Log::write($adminSql,'log');
|
||||||
$db->exec($adminSql);
|
$db->exec($adminSql);
|
||||||
$baseConfig['ADMIN_ID'] = $db->lastInsertId();
|
$baseConfig['ADMIN_ID'] = $db->lastInsertId();
|
||||||
}
|
}
|
||||||
@ -153,7 +155,7 @@ class Index extends Controller {
|
|||||||
}
|
}
|
||||||
$this->writeConfig($baseConfig, 'base', $extraConfPath);
|
$this->writeConfig($baseConfig, 'base', $extraConfPath);
|
||||||
if(session('error')){
|
if(session('error')){
|
||||||
$this->error('安装出错', url('index'));
|
$this->error('安装出错,错误细节请查看Log!', url('index'));
|
||||||
}else{
|
}else{
|
||||||
$str = "<meta http-equiv='Refresh' content='0;URL=".url('complete')."'>";
|
$str = "<meta http-equiv='Refresh' content='0;URL=".url('complete')."'>";
|
||||||
exit($str);
|
exit($str);
|
||||||
@ -214,20 +216,60 @@ class Index extends Controller {
|
|||||||
foreach ($sql as $value) {
|
foreach ($sql as $value) {
|
||||||
$value = trim($value);
|
$value = trim($value);
|
||||||
if (empty($value)) continue;
|
if (empty($value)) continue;
|
||||||
if (substr($value, 0, 12) == 'CREATE TABLE') {
|
if( strpos($value, 'CREATE TABLE') !== false ){
|
||||||
$name = preg_replace('/^CREATE TABLE `(\w+)` .*/s', "\\1", $value);
|
$name = preg_replace('/^CREATE TABLE `(\w+)` .*/s', '\1', $value);
|
||||||
$value = str_replace(" `{$name}", " `{$prefix}{$name}", $value);
|
$value = str_replace("CREATE TABLE `{$name}`", "CREATE TABLE `{$prefix}{$name}`", $value);
|
||||||
$msg = "创建数据表{$name}";
|
$msg = "创建数据表{$name}";
|
||||||
if (false !== $db->exec($value)) {
|
if (false !== $db->exec($value)) {
|
||||||
|
Log::record($value,'log');
|
||||||
showMsg($msg . '...成功', 'success');
|
showMsg($msg . '...成功', 'success');
|
||||||
} else {
|
} else {
|
||||||
|
Log::record($value,'error');
|
||||||
showMsg($msg . '...失败!', 'danger');
|
showMsg($msg . '...失败!', 'danger');
|
||||||
session('error', true);
|
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);
|
$db->exec($value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Log::save();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user