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