Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich eine Datenbank mit PDO in PHP erstellen?

Ja, das können Sie.

Der dsn part, der der erste Parameter des PDO-Konstruktors ist, muss keinen Datenbanknamen haben. Sie können einfach mysql:host=localhost verwenden . Dann können Sie, sofern Sie über die entsprechenden Berechtigungen verfügen, reguläre SQL-Befehle verwenden, um eine Datenbank und Benutzer usw. zu erstellen.

Es folgt ein Beispiel aus einer install.php Datei. Es meldet sich mit root an, erstellt eine Datenbank, einen Benutzer und gewährt dem Benutzer alle Berechtigungen für die neu erstellte Datenbank:

<?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());
    }
?>