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。