$backend, 'host' => trim((string)($_POST['db_host'] ?? '127.0.0.1')), 'port' => (int)($_POST['db_port'] ?? ($backend === 'pgsql' ? 5432 : 3306)), 'dbname' => trim((string)($_POST['db_name'] ?? '')), 'user' => trim((string)($_POST['db_user'] ?? '')), 'password' => (string)($_POST['db_pass'] ?? ''), ]; if ($dbp['dbname'] === '') { $err = '请填写数据库名。'; } else { try { Db::saveParams($dbp); // 重新建立连接并建表 $pdo = Db::connect($dbp); Db::migrate(); } catch (Throwable $e) { $err = '数据库连接/初始化失败:' . $e->getMessage(); } } } if ($err === '') { // 2) 写入系统配置(DB 后端写 settings['config'],文件后端写 config.json) $cfg = ny_default_config(); $cfg['base_url'] = $base; $cfg['api_prefix'] = $prefix; $cfg['username'] = $user; $cfg['password'] = $pwd; $cfg['verify_ssl'] = $verify; $cfg['full_score'] = $full; $saved = ny_save_config($cfg); if ($saved) { // 清理 token 缓存(连接信息变化) @unlink(NY_DATA . '/cache/token.json'); $ok = true; } else { if ($backend === 'file') { $err = '无法写入文件配置,请检查 data/ 目录权限。'; } else { $err = '配置写入失败(已建表但写入配置异常)。'; } } } } } $cfg = ny_load_config(); ?> 首次安装 · <?= htmlspecialchars(NY_APP_NAME) ?>

若连接信息有误或未生效,请重新访问本页配置。

用于合格率(≥60%满分),各试卷可在设置中单独调整