繁体   English   中英

如何使用PHP MySQL连接到新数据库

[英]How to connect to a new database using PHP MySQL

因此,我一直在尝试学习如何将MySQL与PHP结合使用,并且设法创建了一个连接并创建了一个数据库以及一个表。 我不知道该怎么做是一次性创建数据库以及表。

我的意思是更容易在我的代码中显示(这将显示无法连接错误消息,因为connect方法正在尝试连接到不存在的数据库。

    <?php
    $servername = isset($_POST["servername"]) ? $_POST["servername"] : '';
    $username = $_POST["username"];
    $password = $_POST["password"];
    $dbname = $_POST["dbname"];

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    // Create database
    $sql = "CREATE DATABASE myDB";
    if ($conn->query($sql) === TRUE) {
        echo "Database created successfully";
    } else {
        echo "Error creating database: " . $conn->error;
    }

    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";

    if (mysqli_query($conn, $sql)) {
        echo "Table MyGuests created successfully";
    } else {
        echo "Error creating table: " . mysqli_error($conn);
    }
    mysqli_close($conn);
    ?> 

因此,我要实现的全部工作是连接到MySQL,创建数据库,为该数据库创建一个表并关闭一个.php文件中的所有连接。

附带说明一下,由于用户能够定义数据库名称( $dbname ),我如何将此值添加到上面的MySQL代码中? 我在某处听说您应该将变量添加到引号中? 所以'$dbname' 任何帮助都会很好! 提前致谢!

好的,这个问题的原因是因为我正在创建一个安装类型的页面,用户可以在其中连接到自己的数据库,从而允许用户为其命名并使用其凭据进行连接。 显然,我在该领域经验不是很丰富,我希望我能对此做更好的解释。

您拥有的所有代码对我来说都不错。 我认为您唯一缺少的是在创建数据库后必须调用

$conn->select_db("myDB");

另外,如果您希望数据库名称为$ dbname,则

$sql = "CREATE DATABASE myDB";

应该

$sql = "CREATE DATABASE " . $dbname;

如果我没有解决您的问题,请给我更多有关您的问题的详细信息。

您在哪里传递所有这些变量?

$ servername = isset($ _ POST [“ servername”])吗? $ _POST [“ servername”]:'';
$ username = $ _POST [“ username”];
$ password = $ _POST [“ password”];
$ dbname = $ _POST [“ dbname”];

只需简单地硬编码服务器名,用户名,密码和您的dbname。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM