我可以在PHP中使用PDO创建数据库吗?

我可以在PHP中使用PDO创建数据库吗?,php,mysql,pdo,Php,Mysql,Pdo,我想创建一个使用PDO与MySQL交互的类。我可以使用PDO创建一个新的MySQL表吗?是的,它是一样的,就像运行一个常规查询,如“创建表…”。是的,可以 dsn部分是PDO构造函数的第一个参数,不必有数据库名称。您可以简单地使用mysql:host=localhost。然后,如果您拥有正确的权限,您可以使用常规SQL命令创建数据库和用户等 下面是install.php文件中的一个示例。它以root用户身份登录,创建一个数据库、一个用户,并向用户授予新创建的数据库的所有权限: <?php

我想创建一个使用PDO与MySQL交互的类。我可以使用PDO创建一个新的MySQL表吗?

是的,它是一样的,就像运行一个常规查询,如“创建表…”。

是的,可以

dsn
部分是PDO构造函数的第一个参数,不必有数据库名称。您可以简单地使用mysql:host=localhost。然后,如果您拥有正确的权限,您可以使用常规SQL命令创建数据库和用户等

下面是install.php文件中的一个示例。它以root用户身份登录,创建一个数据库、一个用户,并向用户授予新创建的数据库的所有权限:

<?php

    $host = "localhost";

    $root = "root";
    $root_password = "rootpass";

    $user = 'newuser';
    $pass = 'newpass';
    $db = "newdb";

    try {
        $dbh = new PDO("mysql:host=$host", $root, $root_password);

        $dbh->exec("CREATE DATABASE `$db`;
                CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass';
                GRANT ALL ON `$db`.* TO '$user'@'localhost';
                FLUSH PRIVILEGES;")
        or die(print_r($dbh->errorInfo(), true));

    }
    catch (PDOException $e) {
        die("DB ERROR: " . $e->getMessage());
    }
?>

创建PDO连接时,需要将该连接与数据库关联,对吗?我想知道这是否可以避免,或者使用默认的mysql数据库是否会有危险,或者最好只创建一个空数据库,PDO可以连接到该数据库。@Haim:这里的root用户和密码是什么?它不是mysql用户id和密码,对吗?@thearchitect这么好的回答不被接受吗?我感到很气馁:(请注意,在cPanel托管计划中,除非使用phpmyadmin或命令行,否则您将无法看到您的数据库——它不会显示在“MySQL数据库”控制面板下的cPanel中。@JingshaoChen感谢您的帮助性回答!对于其他人,我花了几个小时调试了“创建数据库”查询时,只需意识到在“createdatabase
$db
”字符串中,这些是“backticks”不是单引号!!!你必须把新数据库的名称括起来!!希望这能让人省去想同样的事情的烦恼。@Volomike我很困惑-如果我的网站有Cpanel,我可以用它吗?我试过了,但似乎不管用。我们可以对Postgres做些类似的事情吗?标题谈到创建数据库是的,但他提出的问题是创建一个表。这是两件非常非常不同的事情。