【问题标题】:Create DB if not exists using mysqli + php如果不存在,则使用 mysqli + php 创建数据库
【发布时间】:2015-06-01 04:19:12
【问题描述】:

如果数据库名称不存在,我正在尝试使用 mysqli 创建数据库,使用以下代码:

<?php

$link = mysqli_connect("localhost", "root", "", "php1") ; 
if(mysqli_connect_errno()){
    echo mysqli_connect_error();
    $query = "CREATE DATABASE php1";
    if(mysqli_query($link, $query)){
        echo "Success";
    } else {
        echo "Failure";
    }
}


?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>        
        <a href="signup.php"><button type="button">Sign Up!</button></a>
        <a href="login.php"><button type="button">Log In</button></a>
    </body>
</html>

代码检查数据库并且它不存在。接下来,如果数据库不存在,我想创建它,但我总是收到以下错误:

Warning: mysqli_connect(): (HY000/1049): Unknown database 'php1' in E:\xampp\htdocs\PhpProject1\index.php on line 3

Unknown database 'php1'

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in E:\xampp\htdocs\PhpProject1\index.php on line 7

Failure

这样我无法创建新的数据库。有人知道如何纠正这个问题吗?

【问题讨论】:

    标签: php database mysqli


    【解决方案1】:

    解决此问题的三个步骤:

    1. 连接时不要指定数据库名称。
    2. 您的 SQL 语句应为 CREATE DATABASE IF NOT EXISTS php1
    3. 致电mysqli_select_db($link, 'php1') 将其设为您连接的默认数据库。

    【讨论】:

    • 哎呀,谢谢!我被困在这里很久了:)第一点是我认为最重要的一点。
    • $mysqli = new mysqli($DB_SERVER, $DB_USERNAME, $DB_PASSWORD, "", $DB_PORT); ... $mysqli->query('use ' . $DB_NAME . ';');工作!谢谢!
    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多