Я хочу создать класс, который использует PDO для взаимодействия с MySQL. Могу ли я создать новую таблицу MySQL с использованием PDO?
Да, ты можешь.
Часть 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()); } ?>
да, то же самое, как запустить регулярный запрос типа "CREATE TABLE …"