2016-09-29 8 views
-3

テーブルが存在しない場合は1回だけ作成します。このコードは毎回新しいテーブルを作成しますか?はいの場合、どうすればそれを防ぐことができますか?php Mysql CREATE TABLE 1回だけ存在しない場合

$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はこれを2回実行して見つけなければなりませんでした! – e4c5

+2

毎日実行されるコードでそれを行うのは意味がありません。無駄な 'CREATE TABLE IF NOT EXISTS'クエリをたくさん行うでしょうし、またPHPユーザがそうする権利を持っていることを意味します(非常に危険です)。あなたは "初期化"領域でそれを行う必要があります。 – Xenos

+0

テストしましたか? –

答えて

3

CREATE TABLE IF NOT EXISTSは、テーブルが存在しない場合のみ作成することを意味します。

2

まったく同じものCREATE TABLE IF NOT EXISTSを意味します。テーブルが存在しない場合はテーブルを作成します。

したがって、そうではありません。

関連する問題