PHP PDO,连接到数据库/选择数据库 + 执行


PHP PDO, connecting to database/selecting database + execute

这是我的代码 http://prntscr.com/a2d8qq 目前,我正在学习东西,但我真的很想知道为什么它会说没有选择数据库,因为我在第 5 行选择了它,如果我删除"dbname = users_details"然后执行创建 databse 的查询,那就没问题了。但是每当我在该数据库中创建一个表(我选择了它(时,它都不会让我,我在谷歌上搜索,它确实与我的代码相同,但我的代码不起作用。

<?php
    try {
        $connect = new PDO("mysql: host = 'localhost'; dbname = users_details", 'root', '');
        $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sqlQuery = "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
                        )";
                $connect->exec($sqlQuery);
                    echo 'Successfully created table.';
    }
    catch(PDOException $e) {
        echo $e->getMessage();
    }
?>

所以这解决了我的问题:我必须执行一个查询才能使用指定的数据库进入我希望我的表所在的位置。然后在第 5 行中,我刚刚删除了"dbname =

<?php
try {
    $connect = new PDO("mysql: host = 'localhost';", 'root', '');
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sqlQuery = "CREATE TABLE details (
                    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                    firstname VARCHAR(30) NOT NULL,
                    lastname VARCHAR(30) NOT NULL,
                    email VARCHAR(50),
                    reg_date TIMESTAMP
                    )";
            $connect->exec("use users_details");
            $connect->exec($sqlQuery);
                echo 'Successfully created table.';
}
catch(PDOException $e) {
    echo $e->getMessage();
}

?>