web-dev-qa-db-ja.com

PHPでPDOを使用してデータベースを作成できますか

PDOを使用してMySQLとやり取りするクラスを作成したいと思います。 PDOを使用して新しいMySQLテーブルを作成できますか?

47
Xerri

はい、できます。

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());
    }
?>
102
Jingshao Chen