Home » Php » mysql – Can I create a database using PDO in PHP

mysql – Can I create a database using PDO in PHP

Posted by: admin April 23, 2020 Leave a comment

Questions:

I want to create a class which uses PDO to interact with MySQL. Can I create a new MySQL table using PDO?

How to&Answers:

Yes, you can.

The dsn part, which is the first parameter of the PDO constructor, does not have to have a database name. You can simply use mysql:host=localhost. Then, given you have the right privilege, you can use regular SQL command to create database and users, etc.

Following is an example from an install.php, it logs in with root, create a database, a user, and grant the user all privilege to the new created database:

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

Answer:

yes , its same like run a regular query like “CREATE TABLE …”