基本上,我想創建一個數據庫,但是我知道如果你想創建一個已經存在的mysql數據庫,會出現問題。那麼如何檢查它是否已經存在於PHP中?如何檢查一個MySQL數據庫是否已經存在於PHP中?
這裏是僞代碼:
if (database exist)
{do nothing}
//if it doesn't exist
else
{create the database}
現在我已經知道了如何創建數據庫它的自我。這對我來說很簡單,我只是不知道如何檢查是否已經存在。
基本上,我想創建一個數據庫,但是我知道如果你想創建一個已經存在的mysql數據庫,會出現問題。那麼如何檢查它是否已經存在於PHP中?如何檢查一個MySQL數據庫是否已經存在於PHP中?
這裏是僞代碼:
if (database exist)
{do nothing}
//if it doesn't exist
else
{create the database}
現在我已經知道了如何創建數據庫它的自我。這對我來說很簡單,我只是不知道如何檢查是否已經存在。
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
如果你只需要知道,如果一個數據庫存在,所以當你嘗試創建它,你不會得到一個錯誤,只需使用(從這裏開始):
CREATE DATABASE IF NOT EXISTS DBName;
先走一步,嘗試創建表格。如果表已經存在,MySQL會拋出一個你可以測試的錯誤。
如果您只是想避免發生錯誤而無論如何都創建了表,那麼您可以將IF NOT EXISTS
子句添加到您的CREATE
語句中。
如果無法選擇數據庫,所有這些將返回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
}
既然你要檢查它是否存在,如果它不,你要創建它,你可以兩者同時進行。我假設您有執行以下操作所必需的特權:
CREATE DATABASE IF NOT EXISTS <name of the database>;
爲什麼不只是將「IF NOT EXISTS」子句添加到您的DB create語句中? – keithhatfield
大多數網站都有一個小的數據庫集,而且dbs是手工創建的,所以它通常不是問題。 – 2013-08-05 21:20:27