За последние 24 часа нас посетил 21721 программист и 1011 роботов. Сейчас ищут 665 программистов ...

PDO dbname

Тема в разделе "PHP и базы данных", создана пользователем bikerlex, 24 авг 2016.

  1. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Искал как из php создать БД. Наткнулся на пример http://www.w3schools.com/php/php_mysql_create.asp Example (PDO)
    PHP:
    1. <?php
    2. $servername = "localhost";
    3. $username = "username";
    4. $password = "password";
    5.  
    6. try {
    7.     $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    8.     // set the PDO error mode to exception
    9.     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    10.     $sql = "CREATE DATABASE myDBPDO";
    11.     // use exec() because no results are returned
    12.     $conn->exec($sql);
    13.     echo "Database created successfully<br>";
    14.     }
    15. catch(PDOException $e)
    16.     {
    17.     echo $sql . "<br>" . $e->getMessage();
    18.     }
    19.  
    20. $conn = null;
    21. ?>
    Собственно возник вопрос. Зачем в примере указана БД к которой мы подключаемся dbname=myDB для создания другой БД. Я конечно убрал этот кусок, т.к. в моей гипотетической задаче ещё нет ни одной БД. Всё отлично работает, БД создается. Но вопрос остался. В мануале ответа не нашел.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Ну как тебе сказать... А ни зачем. Вспомни старую библиотеку. Вспомни консольный клиент. Ты для подключения должен ввести логин и пароль. Сервер проверит наличие доступа того пользователя с таким паролем, пришедшего с такого-то айпишника. И начинается сеанс.
    В процессе сеанса ты через USE в консольке или select_db() выбираешь, с какой базой бы хочешь работать как с основной. Но можешь и дальше сидеть в "корне" сервера. Никто тебе не запрещает писать в запросах `myDB`.`users` вместо выбора myDB как основной и дальнейшей короткой записи `users`.
    Вывод. Этот параметр опционален, и лишь сокращает твой код на вызов метода выбора базы - после установки подключения клиент сразу проломится в выбранную бд.
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @bikerlex, а у меня тоже возник вопрос. Почему народ воспринимает инфу на W3Schools, как какую-то непреложную истину? Это сайт никакого отношения к W3C не имеет, а создан обычными энтузиастами откуда-то из Норвегии (если не ошибаюсь). Собрали на одном ресурсе несколько направлений в веб-разработках и всё. Как и любой человек, они могут ошибаться. Поэтому читать можно, но подключать свою логику к анализу прочитанного - очень способствует. Собственно, вы это и сделали.
     
  4. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Так и предполагал что ни зачем. Просто непонятно зачем в контексте создания новой БД сделали подключение к существующей БД. Думал может что упустил. Вопрос на самом деле глупый. Надо поспать. Сутки почти не спал... Каша в голове.
    --- Добавлено ---
    @Deonis, ну если впервые с чем-то сталкиваешься, то почему бы и не взять оттуда пример за основу, для понимания. Разобрать, почитать мануал. Скорее всего переписать по своему.