今天工作中的项目遇到了判断数据库存在与否的问题。一开始使用的是通过SQL语句:SHOW DATABASES;但是使用这个语句是在权限足够的情况下,那么当权限不够的话是无法进行查询的,所以我们不得不考虑其他的办法了。
解决办法是通过mysql_select_db这个函数,通过选择指定的库判断呢该函数的返回值。这个函数返回值为bool类型的,正好用于判断。
那么关于PDO的解决办法是在new一个PDO对象的时候通过catch捕获异常,当数据库不存在时message()函数会返回Unknow database,这样通过它就知道数据库存在不存在了。
- <?php
- $dsn = 'mysql:host=127.0.0.1';
- $user = 'root';
- $password = '2312';
- try {
- $dbh = new PDO($dsn, $user, $password);
- } catch (PDOException $e) {
- if(strpos($e->getMessage(), 'Unknown database') !== false) {
- $dbexist = 0;
- return;
- }
- }
- ?>
转载于:https://blog.51cto.com/wangbei/1024981