51 votes

Puis-je créer une base de données en utilisant PDO en PHP

Je souhaite créer une classe qui utilise PDO pour interagir avec MySQL. Puis-je créer une nouvelle table MySQL en utilisant PDO?

114voto

Jingshao Chen Points 880

Oui, vous pouvez.

La partie dsn , qui est le premier paramètre du constructeur PDO, ne doit pas nécessairement avoir un nom de base de données. Vous pouvez simplement utiliser mysql:host=localhost . Ensuite, si vous avez le privilège approprié, vous pouvez utiliser une commande SQL classique pour créer une base de données et des utilisateurs, etc.

Voici un exemple d'un fichier install.php, il se connecte avec root, crée une base de données, un utilisateur et accorde à l'utilisateur tous les privilèges sur la nouvelle base de données créée:

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

-1voto

Haim Evgi Points 40786

oui, c'est comme exécuter une requête régulière telle que "CREATE TABLE ..."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X