MySQL 需要重新加载两次才能使用 php 在数据库中创建 table
MySQL need to reload twice to create table inside the database with php
目前我遇到的问题是 table 无法与数据库同时创建。下面是我正在使用的代码。
<?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);
?>
基本上,如果特定数据库不存在,此代码将创建一个数据库。然后,我需要创建一个 table 因为我将立即使用数据库。但是,我不明白为什么我需要重新加载网页两次,以便程序为我创建 table。我试过 loops
和 sleep() 函数,但没有任何效果。有没有办法同时创建数据库和table?
这是我加载一次时收到的消息。
Database enquiry created successfully
Connected to database
Error creating table: No database selected
这是我重新加载时收到的消息。
Connected to database
Table Enquiry created successfully
所以你,我不知道如何解决这个问题。
试试这样的:
// ...
$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";
$db_selected = mysqli_select_db($dbc, 'enquiry');
} else {
echo 'Error creating database: ' . mysqli_error($dbc);
}
}
// ...
你在 table 存在之前 selecting,selecting 两次应该修复,我的意思是上面我在数据库创建查询之后添加了另一个 select。
目前我遇到的问题是 table 无法与数据库同时创建。下面是我正在使用的代码。
<?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);
?>
基本上,如果特定数据库不存在,此代码将创建一个数据库。然后,我需要创建一个 table 因为我将立即使用数据库。但是,我不明白为什么我需要重新加载网页两次,以便程序为我创建 table。我试过 loops
和 sleep() 函数,但没有任何效果。有没有办法同时创建数据库和table?
这是我加载一次时收到的消息。
Database enquiry created successfully Connected to database Error creating table: No database selected
这是我重新加载时收到的消息。
Connected to database Table Enquiry created successfully
所以你,我不知道如何解决这个问题。
试试这样的:
// ...
$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";
$db_selected = mysqli_select_db($dbc, 'enquiry');
} else {
echo 'Error creating database: ' . mysqli_error($dbc);
}
}
// ...
你在 table 存在之前 selecting,selecting 两次应该修复,我的意思是上面我在数据库创建查询之后添加了另一个 select。