За последние 24 часа нас посетили 18859 программистов и 1621 робот. Сейчас ищут 915 программистов ...

Грамотная работа с mysql

Тема в разделе "PHP и базы данных", создана пользователем sonicsonic1, 26 фев 2014.

  1. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    Доброе время суток.
    Есть 3 страницы : index.php login.php signup.php т.е можно либо зарегистрироваться либо залогиниться. Вся инфа в бд. Всё работает,пока я не узнал ,что делать в каждом файле новое подключение к бд это не хорошо.(в пхп недавно) А лучше вообще использовать паттерн Singleton и тем самым создавать единственное подключение.Класс описал(использовал PDO для mysql)
    Создаю единственный объект с подключением к бд в index.php и всё отлично работает,но ВОПРОС: а как мне получить этот объект в 2-ух других файлах ? Ну или как вообще делается авторизация и регистрация "по уму" ?
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    т.е. ты в каждом из этих файлов пишешь допустим:
    Код (Text):
    1. $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    2. $db->query(/* .. какой то запрос .. */);
    3. // потом обработка ответа
    ?
     
  3. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    нет, есть класс DataBase в нём реализован Singleton .Там есть конструктор котрый получает файл настроек из xml файла и констркутор создаёт подключение к бд
    А в файлах я пишу
    DB::getSettings($conf_obj->getDataBaseSettings()); // Передаю настройки
    DB::getInstance();//Создаю объект
    Но надо делать это во всех файлах. Вот думаю это норм или нет?
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Ну да, нормально, как еще, только зачем получать настройки из xml и что это за настройки.

    и в строках кода как то все очень мудрено.
     
  5. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    в xml я храню настройки для подключения к БД (хост лог пасс имя).
    Спасибо за коммент )
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    не проще сделать один файл РНР с константными значениями, включая настройки подключения к БД и подключать его везде, чем открывать, выискивать в xml данные настройки и потом закрывать этот файл.
     
  7. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    ну проще конечно.только этот файл будет 1500 строк и не очень будет удобно. а на счет настроек этот файл может меняться и приходить со стороны и не удобно будет каждый раз менять в коде эти настройки на новые
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    это что социальная сеть вконтакте?
     
  9. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    ну я так написал) но если делать login.php signup.php logout.php admin.php profile.php и еще несколько . и пусть даже по 100 строк в каждом то уже объемный получиться
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    создайте файл connect_db создайте там свой класс подключения к БД, инклуд где надо, и все). Можете обойтись без XML.
    А с какой целью храните данные в XML*?
    этот файл хранится в doocroot?
     
  11. sonicsonic1

    sonicsonic1 Новичок

    С нами с:
    15 янв 2014
    Сообщения:
    8
    Симпатии:
    0
    да в root лежит. спасибо уже разобрался что и как)