Я пытаюсь создать CMS, и я хочу, чтобы моя клиентская жизнь была проще, поэтому я сам создаю базу данных. У меня возникла проблема при попытке сделать это. База данных не создана, поэтому я не могу подключиться к PDO-соединению, и mysql
устарел, поэтому я не могу его использовать. У вас есть какие-либо советы для меня о том, как я могу создать PDO-соединение до создания базы данных? как альтернатива mysql_select_db()
?
Вы можете запустить PDO-соединение, исправьте меня, если я ошибаюсь:
$db = new PDO( "mysql:host=localhost", 'user', 'pass' );
Отличие от этого с обычным соединением – это удаленная часть dbname=[xx]
, как вы видите.
Также бесплатный совет, когда вы хотите использовать соединение UTF8:
$db = new PDO( "mysql:host=localhost;charset=UTF-8", 'user', 'pass' );
Чтобы Yehonatan
комментарий к Yehonatan
вы можете выбрать базу данных:
$db->exec('USE databaseName');
Просто отпустите dbname=
part:
try { $pdo = new PDO("mysql:host=localhost;", "user", "pass"); $stmt = $pdo->query("SHOW DATABASES"); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $e) { echo $e->getMessage(); }
Дает мне
array(11) { [0]=> array(1) { ["Database"]=> string(18) "information_schema" } [1]=> array(1) { ["Database"]=> string(5) "cdcol" } [2]=> array(1) { ["Database"]=> string(5) "chica" } [3]=> array(1) { ["Database"]=> string(9) "downloads" } [4]=> array(1) { ["Database"]=> string(5) "mysql" } [5]=> array(1) { ["Database"]=> string(18) "performance_schema" } [6]=> array(1) { ["Database"]=> string(10) "phpmyadmin" } [7]=> array(1) { ["Database"]=> string(8) "rishumon" } [8]=> array(1) { ["Database"]=> string(4) "test" } [9]=> array(1) { ["Database"]=> string(5) "users" } [10]=> array(1) { ["Database"]=> string(7) "webauth" } }
как и ожидалось.
Единственное, что я нашел для работы, это использовать $pdo->query('USE databasename')
чтобы установить базу данных по умолчанию, прежде чем запускать какой-либо запрос.