因此,由于 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 用户需要一点帮助。感谢您的任何建议。
$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 建立现有连接。这不适用于您在第一次连接之前检查数据库。