如何用PDO查看数据库是否存在

Eas*_*yBB 1 php mysql pdo

因此,由于 mysqli 预准备语句的复杂性和不规则性,我最近决定切换到 PDO。这是我用来测试数据库的 mysqli 函数:

public static function is_database($database) {
    self::connect();
    if( mysqli_select_db(self::$conn,$database) ) {
        self::$dbname = $database;
        return true;
    } else {
        return false;
    }
    self::disconnect();
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我读到的关于 PDO 和任何数据库的唯一内容是:

$pdo->exec("use database");
Run Code Online (Sandbox Code Playgroud)

这不是我想要的,除非将它与 try catch 一起使用可以工作。诸如此类的东西

public static function is_database($database){
   self::connect();
   try {
      self::$conn->exec('use '.$database);
      return true;
   } catch(PDOException $e){
     print($e->getMessage();
     return false;
     die();
   }
}
Run Code Online (Sandbox Code Playgroud)

1 小时新 PDO 用户需要一点帮助。感谢您的任何建议。

Dev*_*von 5

按照如何检查mysql数据库是否存在中找到的查询

$stmt = $pdo->query("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'");
return (bool) $stmt->fetchColumn();
Run Code Online (Sandbox Code Playgroud)

我们检查将返回 1 或 0 的计数,并将其类型转换为布尔值(true/false)。

当然,这需要通过 PDO 建立现有连接。这不适用于您在第一次连接之前检查数据库。