Подтвердить что ты не робот

Могу ли я создать базу данных с использованием PDO в PHP?

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

4b9b3361

Ответ 1

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

Часть 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());
    }
?>

Ответ 2

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