Как создать базу данных средствами mysqli либо PDO?

268
06 ноября 2017, 23:31

Как можно подключиться к серверу mysql и выполнить команду Create database?

Как-то так, только без указания базы (4-параметра):

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

После чего выполнить, например, команду mysql_create_db.

Как это можно сделать?

Answer 1

Прежде всего Вы подключаетесь к серверу, 4 параметр(имя бд) не обязателен при подключении и позволяет использовать бд для запросов по умолчанию.

Примеры создания базы данных для различных подходов ниже.

Mysqli объектно ориентированный стиль

$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . $conn->error;
}
$conn->close();

Mysqli процедурный стиль

$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . mysqli_error($conn);
}
mysqli_close($conn);

PDO

$root="root"; 
$root_password="root_password"; 
$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($db->errorInfo(), true));
} catch (PDOException $e) {
    die("DB ERROR: ". $e->getMessage());
}
READ ALSO
SQL-запрос с строкой в одном столбце и со значением count(*) в другой

SQL-запрос с строкой в одном столбце и со значением count(*) в другой

Извините за ламерство, вопрос действительно из разряда "да почему я так туплю"Имею запрос типа

281
Авторизация PHP MVC модель

Авторизация PHP MVC модель

Здравствуйте, имеется MVC модель сайта, смысл такой если человек авторизован имеет свою сессию, то контроллер возвращает по адресу "/admin" панель...

286
Yii2 разлогинивание на всех устройствах

Yii2 разлогинивание на всех устройствах

ЗдравствуйтеЕсть проект на Yii2 фреймворке и там нужно сделать так чтоб при выходе пользователя на одном устройстве/браузере его авторизация...

266
php - функции, аргументы

php - функции, аргументы

Всем приветВопрос по PHP

246