2014-03-13 101 views
5

我正在爲我的學術開發一個小型應用程序。我有一個註冊表單和一個log_in表單。這是我想要的,我有一個數據庫配置文件,其中包含「連接到服務器,創建數據庫和創建表查詢」。我已將此數據庫文件包含在註冊表單的頂部,以便在加載頁面時,「查詢應該執行並創建數據庫和表格,只需要」。但問題是查詢第一次成功執行,但當註冊頁面再次加載時,它會提示錯誤「數據庫已經存在」(DATABASE ALREADY EXISTS)。讓我開心。 我附上了db.php代碼..PHP和MYSQL數據庫連接和表創建只有一次

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$connect = mysql_connect($dbhost, $dbuser, $dbpass); 
if (!$connect) { 
    die('SERVER CONNECTION FAILED...\n: ' . mysql_error()); 
} 
; 
$sql = 'CREATE DATABASE USERS'; 
$retval = mysql_query($sql, $connect); 
if (!$retval) { 
    die('DATABASE CREATION FAILED\n: ' . mysql_error()); 
} 
; 
$sql = "CREATE TABLE USERS(" . "Memberid int(10) NOT NULL AUTO_INCREMENT, 
     " . "Name varchar(100) NOT NULL, 
     " . "Username varchar(20) NOT NULL, 
     " . "Password varchar(10) NOT NULL, 
     " . "Email varchar(20) NOT NULL, 
     " . "Activation varchar(40) DEFAULT NULL, 
     " . "Status int(1) NOT NULL DEFAULT '1', 
     " . "PRIMARY KEY (`Memberid`)); "; 
mysql_select_db('USERS'); 
$retval = mysql_query($sql, $connect); 
if (!$retval) { 
    die('COULD NOT CREATE TABLE\n: ' . mysql_error()); 
} 
; 
mysql_close($connect); 
?> 
<html> 
    <body> 
    //registration form code 
    </body> 
</html> 

回答

4

查詢一次創建數據庫,如果不存在

  CREATE DATABASE IF NOT EXISTS DBName; 

查詢創建表只有一次,如果它它不存在

  CREATE TABLE IF NOT EXISTS tablename; 
+0

謝謝你的工作...... :) –

+0

是的。這是非常有益的... :) –

1

您只能創建一次數據庫/表。

變化

CREATE DATABASE 

要:

CREATE DATABASE IF NOT EXISTS 

同樣的變化應適用於表創建語句。

+0

謝謝你的工作...... :) –

1

試試這個變化

CREATE DATABASE IF NOT EXISTS USERS 

而對於表

CREATE TABLE IF NOT EXISTS tablename; 
+1

謝謝你的工作...... :) –