今天工作中的項目遇到了判斷數據庫存在與否的問題。一開始使用的是通過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;
- }
- }
- ?>