Ya, Anda bisa.
dsn
bagian, yang merupakan parameter pertama dari konstruktor PDO, tidak harus memiliki nama database. Anda cukup menggunakan mysql:host=localhost
. Kemudian, jika Anda memiliki hak istimewa yang tepat, Anda dapat menggunakan perintah SQL biasa untuk membuat database dan pengguna, dll.
Berikut adalah contoh dari install.php mengajukan. Itu masuk dengan root, membuat database, pengguna, dan memberikan pengguna semua hak istimewa ke database yang baru dibuat:
<?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());
}
?>