Ja, dat kan.
De dsn
part, de eerste parameter van de PDO-constructor, hoeft geen databasenaam te hebben. U kunt eenvoudig mysql:host=localhost
. gebruiken . Als u over de juiste bevoegdheden beschikt, kunt u vervolgens gewone SQL-commando's gebruiken om een database en gebruikers aan te maken, enz.
Hieronder volgt een voorbeeld van een install.php het dossier. Het logt in met root, maakt een database aan, een gebruiker en verleent de gebruiker alle privileges voor de nieuw aangemaakte database:
<?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());
}
?>