我可以在PHP中使用PDO创建数据库吗?

时间:2010-04-06 09:11:31

标签: php mysql pdo

我想创建一个使用PDO与MySQL交互的类。我可以使用PDO创建一个新的MySQL表吗?

2 个答案:

答案 0 :(得分:101)

是的,你可以。

dsn部分是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());
    }
?>

答案 1 :(得分:-1)

是的,就像运行常规查询一样,例如“CREATE TABLE ...”