PHP和MYSQL数据库连接和表创建只有一次

时间:2014-03-13 04:54:06

标签: php html mysql

我正在为我的学术开发一个小应用程序。我有一个注册表和一个log_in表。这是我想要的,我有一个数据库配置文件,其中包含“连接到服务器,创建数据库和创建表查询”。我已将此数据库文件包含在我的注册表单顶部,以便在加载页面时“查询应执行并仅创建数据库和表”。但问题是查询是第一次成功执行,但是当再次加载注册页时,它会提示错误“DATABASE ALREADY EXISTS”。让我开心。 我已经附加了db.php代码..

<?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>

3 个答案:

答案 0 :(得分:4)

如果不存在,则查询仅创建一次数据库

            CREATE DATABASE IF NOT EXISTS DBName;

如果表不存在,则查询仅创建一次

            CREATE TABLE IF NOT EXISTS tablename; 

答案 1 :(得分:1)

您只能创建一次数据库/表。

更改

CREATE DATABASE

要:

CREATE DATABASE IF NOT EXISTS

应该对表创建语句应用相同的更改。

答案 2 :(得分:1)

尝试此更改

CREATE DATABASE IF NOT EXISTS USERS

表格

CREATE TABLE IF NOT EXISTS tablename;