2013-08-05 140 views
0

基本上,我想創建一個數據庫,但是我知道如果你想創建一個已經存在的mysql數據庫,會出現問題。那麼如何檢查它是否已經存在於PHP中?如何檢查一個MySQL數據庫是否已經存在於PHP中?

這裏是僞代碼:

if (database exist) 
{do nothing} 

//if it doesn't exist 
else 
{create the database} 

現在我已經知道了如何創建數據庫它的自我。這對我來說很簡單,我只是不知道如何檢查是否已經存在。

+1

爲什麼不只是將「IF NOT EXISTS」子句添加到您的DB create語句中? – keithhatfield

+0

大多數網站都有一個小的數據庫集,而且dbs是手工創建的,所以它通常不是問題。 – 2013-08-05 21:20:27

回答

3
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName' 

如果你只需要知道,如果一個數據庫存在,所以當你嘗試創建它,你不會得到一個錯誤,只需使用(從這裏開始):

CREATE DATABASE IF NOT EXISTS DBName; 
0

先走一步,嘗試創建表格。如果表已經存在,MySQL會拋出一個你可以測試的錯誤。

如果您只是想避免發生錯誤而無論如何都創建了表,那麼您可以將IF NOT EXISTS子句添加到您的CREATE語句中。

2

如果無法選擇數據庫,所有這些將返回false。 這意味着它不存在或者您沒有權限訪問。

bool mysql_select_db (string $database_name [, resource $link_identifier = NULL ]) 

bool mysqli_select_db (mysqli $link , string $dbname) 

也可以用PDO。 或者作爲mysqli的對象:

try { 
    $mysqli = new mysqli("localhost", "my_user", "my_password"); 
} catch (\Exception $e) { 
    echo $e->getMessage(), PHP_EOL; 
} 
if ($mysqli->select_db('your_database') === false) { 
    // Create db 
} 
0

既然你要檢查它是否存在,如果它,你要創建它,你可以兩者同時進行。我假設您有執行以下操作所必需的特權:

CREATE DATABASE IF NOT EXISTS <name of the database>; 
相關問題