Có, bạn có thể.
dsn
phần, là tham số đầu tiên của phương thức khởi tạo PDO, không nhất thiết phải có tên cơ sở dữ liệu. Bạn chỉ cần sử dụng mysql:host=localhost
. Sau đó, nếu bạn có đặc quyền phù hợp, bạn có thể sử dụng các lệnh SQL thông thường để tạo cơ sở dữ liệu và người dùng, v.v.
Sau đây là một ví dụ từ một install.php tập tin. Nó đăng nhập bằng root, tạo cơ sở dữ liệu, người dùng và cấp cho người dùng tất cả các đặc quyền đối với cơ sở dữ liệu mới được tạo:
<?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());
}
?>