【发布时间】:2022-01-07 08:53:42
【问题描述】:
目前我面临一个问题,无法同时创建表和数据库。下面是我正在使用的代码。
<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'enquiry');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
// Make my_db the current database
$db_selected = mysqli_select_db($dbc, 'enquiry');
if (!$db_selected) {
// If we couldn't, then it either doesn't exist, or we can't see it.
$sql = 'CREATE DATABASE enquiry';
if (mysqli_query($dbc, $sql)) {
echo "Database enquiry created successfully";
} else {
echo 'Error creating database: ' . mysqli_error($dbc);
}
}
if ($dbc){
echo "Connected to database";
} else {
echo "Could not connect to database";
}
$create_table = "CREATE TABLE enquiry (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(20),
last_name VARCHAR(35),
email VARCHAR(255) NOT NULL,
phone INT,
street_address TEXT,
city VARCHAR(25),
state VARCHAR(25),
postcode INT,
subject VARCHAR(255),
service VARCHAR(20),
comment TEXT
)";
if (mysqli_query($dbc, $create_table)) {
echo "Table Enquiry created successfully";
} else {
echo "Error creating table: " . mysqli_error($dbc);
}
mysqli_close($dbc);
?>
基本上,如果特定数据库不存在,此代码将创建一个数据库。然后,我需要创建一个表,因为我将立即使用数据库。但是,我不明白为什么我需要重新加载网页两次,以便程序为我创建表格。我已经尝试过loops 和 sleep() 功能,但没有任何效果。有没有办法同时创建数据库和表?
这是我加载一次时收到的消息。
Database enquiry created successfully Connected to database Error creating table: No database selected
这是我重新加载时收到的消息。
Connected to database Table Enquiry created successfully
所以你,我不知道如何解决这个问题。
【问题讨论】:
-
第一次运行时,您在数据库存在之前选择它。您仍然连接,但没有选择数据库。第二次您可以选择已经存在的数据库。解决方法:创建后直接选择数据库。
-
好的,非常感谢您的指导,我现在就试试。
-
谢谢,解决方案有效^^