You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中仅循环前缀为solarsystem的MySQL数据库名并生成下拉列表

实现仅展示以solarsystem为前缀的MySQL数据库下拉列表

嘿,这个需求其实挺容易实现的,我给你梳理下具体步骤,保证能搞定:

1. 先搞定MySQL数据库连接

首先得确保PHP能连上你的MySQL,这里我用PDO来写,比mysqli更灵活也更安全:

<?php
// 替换成你的数据库连接信息
$host = 'localhost';
$dbUser = 'your_db_username';
$dbPass = 'your_db_password';

try {
    $pdo = new PDO("mysql:host=$host", $dbUser, $dbPass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die("连接失败啦: " . $e->getMessage());
}
?>

2. 获取数据库并过滤前缀

接下来我们先拿到所有数据库,然后筛选出以solarsystem开头的:

<?php
// 查询所有数据库
$stmt = $pdo->query("SHOW DATABASES");
$allDatabases = $stmt->fetchAll(PDO::FETCH_COLUMN);

// 过滤出符合要求的数据库
$filteredDatabases = [];
foreach ($allDatabases as $dbName) {
    // PHP 8.0及以上可以用这个更直观的函数
    if (str_starts_with($dbName, 'solarsystem')) {
        $filteredDatabases[] = $dbName;
    }
    // 如果你用的PHP版本低于8.0,就换成下面这段:
    // if (substr($dbName, 0, 11) === 'solarsystem') {
    //     $filteredDatabases[] = $dbName;
    // }
}
?>

3. 渲染成下拉列表

最后把过滤后的列表转成HTML下拉框就行:

<select name="solar_db_select">
    <?php foreach ($filteredDatabases as $db): ?>
        <!-- 一定要用htmlspecialchars转义,防止XSS攻击 -->
        <option value="<?= htmlspecialchars($db) ?>"><?= htmlspecialchars($db) ?></option>
    <?php endforeach; ?>
</select>

几个要注意的小细节

  • 别忘用htmlspecialchars()转义输出的数据库名,这是防止XSS攻击的基础操作,不能偷懒。
  • 要是你的PHP版本还停留在8.0以下,记得把str_starts_with()换成substr()的写法,不然会报错。
  • 确保你的数据库账号有SHOW DATABASES的权限,不然根本拿不到数据库列表哦。

内容的提问来源于stack exchange,提问作者Dexter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:49:21