1. 判断数据库是否存在的两种方法:
一、用PDO判断数据库是否存在
二、用SQL语句判断
2. 方法一执行代码,如下:
//$config[‘dsn‘]的表示如下
$config["dsn"] => string(65) "mysql:host=127.0.0.1;port=3306;charset=utf8"
//$config[‘username‘]为数据库用户名, $config[‘password‘]:数据库密码
function isDBExist($config) { $config[‘dsn‘] = $this->parseDsn($config);//转换组为DSN字符串 $conn = new PDO($config[‘dsn‘], $config[‘username‘], $config[‘password‘]); // 设置 PDO 错误模式为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "show databases;"; // 使用 exec() ,因为没有结果返回 $res = $conn->query($sql); $res = $res->fetchAll(PDO::FETCH_ASSOC); $database_list = []; foreach($res as $k => $v) { $database_list[] = $v[‘Database‘]; } if (in_array($config[‘database‘],$database_list)) { return true; // 存在 } else { return false; } }
2. 方法二执行代码如下:
//$config[‘username‘]为数据库用户名
function isDBExist($config) { try { $rs = Db::execute("use ".$db_config["database"]); }catch (Exception $e) { return false;//不存在 } return true; }