SQL: 无法选择数据库


SQL: Cannot Select Database

当我尝试创建用户表时,我收到以下错误消息:

创建表时出错:未选择数据库

我已经尝试了SELECTUSE和创建新连接,但我似乎无法连接到我创建的secure_login数据库。也许我格式化错误,我不确定。我知道我没有包括选择数据库的尝试,这是因为我所做的一切似乎都不起作用。

这是代码:

<?php
    $servername = "localhost";
    $username = "root";
    $password = "root";
    // Create connection
    $conn = new mysqli($servername, $username, $password);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    echo "Connected to server successfully" . "</br>";
    // CREATE SECURE LOGIN
    $sql = "CREATE DATABASE IF NOT EXISTS secure_login";
    if ($conn->query($sql) === TRUE) {
        echo "secure_login functional" . "</br>";
        //CREATE USERS TABLE;
        $sql = "CREATE TABLE IF NOT EXISTS users (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
            username VARCHAR(30) NOT NULL,
            email VARCHAR(50) NOT NULL,
            password CHAR(128) NOT NULL
        )";
        //MAKE ADMIN USER
        $sql = "INSERT INTO users (id, username, email, password)
        VALUES ('1', 'admin', 'test@test.com', 'password')";
        if ($conn->query($sql) === TRUE) {
            echo "Table users functional" . "</br>";
        } 
        else {
            echo "Error creating table: " . $conn->error . "</br>";
        } 
    } 
    else {
        echo "secure_login not functional: " . $conn->error . "</br>";
    }
?>
 $sql = "CREATE DATABASE IF NOT EXISTS secure_login";
    if ($conn->query($sql) === TRUE) {

    // Start Using it at this point :)

您已经创建了新数据库,但尚未告诉 mysqli 将其用于进一步的查询,因此您的 SELECT 查询没有可供选择的数据库。

你可以简单地做

$conn->select_db("secure_login");

这是一个工作示例..我刚刚在创建数据库后与新创建的数据库建立了新连接..。可能还有其他替代方法。但这对我有用.

<?php
    $servername = "localhost";
    $username = "root";
    $password = "root";
    // Create connection
    $conn = new mysqli($servername, $username, $password);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    echo "Connected to server successfully" . "</br>";
    // CREATE SECURE LOGIN
    $sql = "CREATE DATABASE IF NOT EXISTS secure_login";
    if ($conn->query($sql) === TRUE) {
        echo "secure_login functional" . "</br>";
        $dbname= "secure_login";
        $newConnection = new mysqli($servername, $username, $password,$dbname);
        //CREATE USERS TABLE;
        $sql = "CREATE TABLE IF NOT EXISTS users (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
            username VARCHAR(30) NOT NULL,
            email VARCHAR(50) NOT NULL,
            password CHAR(128) NOT NULL
        )";
        if ( $newConnection->query($sql) === TRUE) {
            echo "Table users functional" . "</br>";
        } 
        else {
            echo "Error creating table: " .  $newConnection->error . "</br>";
        } 
        //MAKE ADMIN USER
        $sql = "INSERT INTO users (id, username, email, password)
        VALUES ('1', 'admin', 'test@test.com', 'password')";
        if ( $newConnection->query($sql) === TRUE) {
            echo "inserted successsfully" . "</br>";
        } 
        else {
            echo "Error Inserting: " .  $newConnection->error . "</br>";
        } 
    } 
    else {
        echo "secure_login not functional: " .  $newConnection->error . "</br>";
    }
?>

输出

已成功连接到服务器

secure_login功能

表用户功能

插入成功

我相信

您只需要在创建表后添加一个选择语句。

您可以在//创建用户表之前调用:

mysqli_select_db($conn,"secure_login");