我正在为我的学术开发一个小应用程序。我有一个注册表和一个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>
答案 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;