我想创建一个使用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());
    }
?>

Mysql相关问答推荐

SQL查询仅插入5行

透视从另一个表添加信息的查询

如何在sql中包含0作为计数?

Travis 构建失败并出现错误 LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝

Mysql 查询返回未定义的 node.js

根据 Power Query 中的条件替换值

try 在 .map 中使用 Favorite 选项卡进行react .我无法更改 mysql 表上的布尔类型

如何在 axios 请求中将更新的设置状态值作为参数传递

MySQL:根据条件查找某些用户的行位置

如何计算每行的剩余金额?

从多到多表中 Select 数据而无需重复

使用另一个表中的值更新一个表中的值

如何通过if语句对SQL查询进行排序

查询给出错误时的 mySQL Group_Concat 和 Case

Golang Gorm 没有创建带有约束的表

mysql - 如何加入表中的动态列

如何在不违反唯一约束的情况下交换 MySQL 中两行的值?

Facebook user_id:big_int、int 还是 string?

MySQL查询/子句执行顺序

MySQL - 错误 1045 - 访问被拒绝