include JIEQI_ROOT_PATH . '/configs/modules.php'; if (is_array($_POST['mod_name']) && count($_POST['mod_name']) > 0) { foreach ($_POST['mod_name'] as $v) { if (file_exists($sql_dir . '/' . $v . '/struct.sql') && file_exists($sql_dir . '/' . $v . '/data.sql')) { if (!isset($jieqiModules[$v])) { $jieqiModules[$v] = array('caption' => $v, 'dir' => '', 'path' => '', 'url' => '', 'theme' => '', 'publish' => '1'); $upmodules = true; } elseif ($jieqiModules[$v]['publish'] <= 0) { $jieqiModules[$v]['publish'] = 1; $upmodules = true; } $file_content = jieqi_readfile($sql_dir . '/' . $v . '/struct.sql'); $file_content .= jieqi_readfile($sql_dir . '/' . $v . '/data.sql'); //... $sqlary = array(); jieqi_splitsqlfile($sqlary, preg_replace(array('/DROP\\s+TABLE\\s+IF\\s+EXISTS\\s+`?jieqi_([a-z1-9_]+)`?\\s*;/isU', '/TABLE\\s+`?jieqi_([a-z1-9_]+)`?(;|\\s)/isU', '/INSERT\\s+INTO\\s+`?jieqi_([a-z1-9_]+)`?(;|\\s)/isU', '/UPDATE\\s+`?jieqi_([a-z1-9_]+)`?(;|\\s)/isU'), array('DROP TABLE IF EXISTS `' . JIEQI_DB_PREFIX . '_\\1`;', 'TABLE `' . JIEQI_DB_PREFIX . '_\\1`\\2', 'INSERT INTO `' . JIEQI_DB_PREFIX . '_\\1`\\2', 'UPDATE `' . JIEQI_DB_PREFIX . '_\\1`\\2'), $file_content)); $sqlerr = array(); foreach ($sqlary as $v) { $v = trim($v); if (!empty($v) and strlen($v) > 5) { if ($mysql_version > '4.1') { if (preg_match('/^\\s*CREATE\\s+TABLE/is', $v)) { $v = str_replace(array('TYPE=MyISAM', 'TYPE=HEAP'), array('ENGINE=MyISAM DEFAULT CHARSET=' . JIEQI_DB_CHARSET, 'TYPE=MEMORY DEFAULT CHARSET=' . JIEQI_DB_CHARSET), $v); } } $retflag = $db_query->execute($v); if (!$retflag) { $sqlerr[] = array('sql' => $v, 'error' => $db_query->db->error()); //显示错误 $jieqiTpl->assign('status', 0); $jieqiTpl->assign('step_content', sprintf($jieqiLang[JIEQI_MODULE_NAME]['print_sql_error'], jieqi_htmlstr($v), jieqi_htmlstr($db_query->db->error())));
if (empty($errtext)) { $db_query = JieqiQueryHandler::getInstance('JieqiQueryHandler'); $sqlfilearray = jieqi_getfilesarray($filename); if (is_array($sqlfilearray) && count($sqlfilearray) > 0) { //处理压缩SQL的情况 /*anchor:28 if('.zip'===substr($sqlfilearray[0], strpos($sqlfilearray[0], '.'))){ //exit; } */ //开始导入SQL foreach ($sqlfilearray as $v) { $sqlfilecontent = jieqi_readfile(MYSQL_BACKUP_PATH . '/' . $v); $sqlary = array(); $sqlerr = array(); jieqi_splitsqlfile($sqlary, str_replace(' jieqi', ' ' . JIEQI_DB_PREFIX, $sqlfilecontent)); foreach ($sqlary as $s) { $s = trim($s); if (!empty($s) and strlen($s) > 5) { $retflag = $db_query->execute(jieqi_syntablestruct($s, MYSQL_SERVER_INFO > '4.1', JIEQI_DB_CHARSET)); if (!$retflag) { $sqlerr[] = array('sql' => $s, 'error' => $db_query->db->error()); //显示错误 jieqi_printfail(sprintf($jieqiLang[JIEQI_MODULE_NAME]['print_sql_error'], jieqi_htmlstr($s), jieqi_htmlstr($db_query->db->error()))); break; } } } } //处理成功跳转 jieqi_jumppage('dbmanage.php?option=import', LANG_DO_SUCCESS, $jieqiLang[JIEQI_MODULE_NAME]['import_mysql_success']);
jieqi_loadlang('database', JIEQI_MODULE_NAME); if ($jieqiUsersStatus != JIEQI_GROUP_ADMIN) { jieqi_printfail(LANG_NEED_ADMIN); } @set_time_limit(3600); @session_write_close(); include_once JIEQI_ROOT_PATH . '/admin/header.php'; if (isset($_POST['action']) && $_POST['action'] == 'execute') { if (empty($_POST['sqldata'])) { jieqi_printfail($jieqiLang['system']['need_sql_data']); } elseif (preg_match('/(into\\s+outfile|load_file\\s*\\([^\\)]*\\)|load\\s+data)/is', $_POST['sqldata'])) { jieqi_printfail($jieqiLang['system']['deny_sql_data']); } jieqi_includedb(); $db_query = JieqiQueryHandler::getInstance('JieqiQueryHandler'); jieqi_splitsqlfile($sqlary, str_replace(' jieqi_', ' ' . JIEQI_DB_PREFIX . '_', $_POST['sqldata'])); $sqlerr = array(); foreach ($sqlary as $v) { $v = trim($v); if (!empty($v) and strlen($v) > 5) { $retflag = $db_query->execute($v); if (!$retflag) { $sqlerr[] = array('sql' => $v, 'error' => $db_query->db->error()); if ($_POST['errorstop']) { jieqi_printfail(sprintf($jieqiLang['system']['print_sql_error'], jieqi_htmlstr($v), jieqi_htmlstr($db_query->db->error()))); break; } } } } if (!empty($sqlerr) && $_POST['showerror']) {