PDOを使用してMySQLとやり取りするクラスを作成したいと思います。 PDOを使用して新しいMySQLテーブルを作成できますか?
はい、できます。
PDOコンストラクターの最初のパラメーターであるdsn
部分は、データベース名を持つ必要はありません。単に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());
}
?>