/** * 机械化地升级数据库结构。 * @return boolean */ function update_structure_automatically($next_ver, $cur_pos) { global $db, $prefix, $err; $ver_obj = create_ver_obj($next_ver); if (!is_object($ver_obj) || empty($ver_obj->sql_files['structure'])) { return true; } $structure_path = ROOT_PATH . 'upgrade/packages/' . $next_ver . '/' . $ver_obj->sql_files['structure']; $db_charset = strtolower(str_replace('-', '', EC_CHARSET)); $se = new sql_executor($db, $db_charset, 'ecs_', $prefix, ROOT_PATH . 'data/upgrade_' . $next_ver . '.log', $ver_obj->auto_match, array(1062, 1146)); $query_item = $se->get_spec_query_item($structure_path, $cur_pos); $se->query($query_item); if (!empty($se->error)) { $err->add($se->error); return false; } return true; }