2016-09-29 116 views
-3

我只想創建一次表,如果它不存在。這段代碼每次都會創建一個新表嗎?如果是的話,我該如何預防呢?php Mysql創建表如果不存在只有一次

$queryCreateUsersTable = "CREATE TABLE IF NOT EXISTS EmailList (
    `ListName` varchar(100) COLLATE utf8_unicode_ci NOT NULL, 
    `FirstName` varchar(100) COLLATE utf8_unicode_ci NOT NULL, 
    `Email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, 
    `ID` varchar(100) COLLATE utf8_unicode_ci NOT NULL, 
    `IP` varchar(100) COLLATE utf8_unicode_ci NOT NULL, 
    `ConfirmedEmail` tinyint(1) DEFAULT NULL, 
    `Subscribed` tinyint(1) DEFAULT 0, 
    UNIQUE KEY `ID` (`ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; 

if(!$conn->query($queryCreateUsersTable)) 
{ 
    echo "Table creation failed: (" . $dbConnection->errno . ") " . $dbConnection->error; 
} 
+1

我投票結束這個問題作爲題外話,因爲它太瑣碎了! OP只需要運行兩次就可以知道! – e4c5

+2

在日常執行的代碼中做這件事毫無意義:你會做很多無用的「CREATE TABLE IF NOT EXISTS」查詢,這也意味着PHP用戶有權這樣做(非常危險)。您應該在「初始化」區域中執行此操作。 – Xenos

+0

你測試過了嗎? –

回答

3

CREATE TABLE IF NOT EXISTS表示只有在表不存在的情況下才會創建表。

2

正如CREATE TABLE IF NOT EXISTS的含義。如果表不存在,則創建一個表。因此,不,不。

相關問題