Могу ли я создать базу данных, используя PDO в PHP - PullRequest
47 голосов
/ 06 апреля 2010

Я хочу создать класс, который использует PDO для взаимодействия с MySQL. Могу ли я создать новую таблицу MySQL, используя PDO?

Ответы [ 2 ]

102 голосов
/ 01 июля 2011

Да, вы можете.

Часть 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());
    }
?>
0 голосов
/ 06 апреля 2010

да, это то же самое, что и обычный запрос типа "CREATE TABLE ..."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...