Да, можете.
dsn
part, който е първият параметър на конструктора на 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());
}
?>