ФорумПрограммированиеPHP для идиотов → Подключения к БД

Подключения к БД

  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 13 февраля 2010 г. 20:18

    Ночки доброй

    у меня такой вот вопросик….
    начитался всякой литры и везде пишут,что для большей безопасности
    после таго как сделали пару запросов к БД надо тут же делать mysql_close();
    Вот и в итоге у меня со временем получилось что в скрипте несколько раз подряд идет подключение к БД, какая то работа с таблицами, потом закрываем…..
    Я вот тут задумался , может лучше в самом начале скрипта делать подключение к БД
    а закрывать в конце,….как это отразиться на работе скрипта…?!?!?!?
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 13 февраля 2010 г. 20:31, спустя 12 минут 20 секунд

    malaba, твой скрипт станет лучше.
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 14 февраля 2010 г. 2:46, спустя 6 часов 15 минут 31 секунду

    SpartakuS, с чего это?
    Вы файлы тоже открываете при бутстрапе?
    malaba, коннект, работа с базой, отключение - и только так. Однократно.
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 14 февраля 2010 г. 2:48, спустя 2 минуты 3 секунды


    Я вот тут задумался , может лучше в самом начале скрипта делать подключение к БД

    да все так и делают
    а закрывать вообще не обязательно, само в конце скрипта закроется
    Спустя 64 сек.
    вернее подключение открывают не в самом начале а там где становится необходимо.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 4:27, спустя 1 час 39 минут 7 секунд

    Ewg777, стараюсь открывать, когда необходимо и закрывать, когда необходимо.
    А открывать соединение перед запросом и закрывать после кажется мне неправильным.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 6:41, спустя 2 часа 13 минут 30 секунд

    malaba, для оптимизации на "весомых" запросах нужно делать сброс памяти у мускула (на малых запросах не обязательно, но по правилам хорошего тона лишним не будет). А дисконект делать совсем даже нельзя, потому как операция коннекта к базе - это одна из самых времязатратных (на фоне простых запросов) операций при работе с БД.
  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 14 февраля 2010 г. 17:08, спустя 10 часов 27 минут 36 секунд

    В том то и дело что подключение и запрос идет в самом начале скрипта (проверка авторизации)
    и после закрываю соединение
    потому как там могут открываться файлы и т.д. и т.п. вобщем времязатратные процессы.
    Я так понимаю в таких случаях как раз таки и надо закрывать соединение..!
    А вообще подумываю что надо переделать авторизацию/идентификацию юзера,
    потому как на каждой странице идет проверка по бд
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 17:15, спустя 6 минут 31 секунду

    malaba,
    грубо говоря, вам нужно открывать соединение перед первым запросом и закрывать после последнего.
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 14 февраля 2010 г. 18:29, спустя 1 час 14 минут 31 секунду


    malaba, для оптимизации на "весомых" запросах нужно делать сброс памяти у мускула

    подробнее можно
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 18:37, спустя 7 минут 13 секунд

    Faster, я сам с высоконагруженными проектами не работал пока, но думаю, что
    mysql_free_result();
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 2:28, спустя 7 часов 51 минуту 18 секунд

    Faster, тебе SpartakuS правильно указал на функцию. А нужна она в, примерно, тех случаях, когда у тебя идет запрос на выборку в пару десятков тысяч строк. После обработки этих строк (получения нужных тебе данных) очень желательно "почистить" память от выбранных из БД строк. Ну и при большой кол-ве менее объемных запросов тоже не помешает делать "сброс" памяти.

    А вообще подумываю что надо переделать авторизацию/идентификацию юзера,
    потому как на каждой странице идет проверка по бд

    А как ты это ещё представляешь?
    Хотя, тут каждому своё, но реально при наличии попутных запросов на выборку данных, сделать ещё один запрос для авторизации - плевое дело для мускуля, и отнимет оно миллисекунды (а то и сотые доли миллисекунд) у серверного времени, зато по надежности будет получше (при правильной организации авторизации). Хотя можно делать все и без запроса, но тогда получается, что доступ будет либо без подтверждения пароля либо же пароль будет у юзера в куках. И тот и тот вариант херовый. ИМХО
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2010 г. 4:12, спустя 1 час 43 минуты 55 секунд

    Пиля, судя по постам в выходные большинство употрубляет тяжёлые наркотики =)
    Хотя, тут каждому своё, но реально при наличии попутных запросов на выборку данных, сделать ещё один запрос для авторизации - плевое дело для мускуля, и отнимет оно миллисекунды (а то и сотые доли миллисекунд) у серверного времени, зато по надежности будет получше (при правильной организации авторизации). Хотя можно делать все и без запроса, но тогда получается, что доступ будет либо без подтверждения пароля либо же пароль будет у юзера в куках. И тот и тот вариант херовый.

    Как ты определишь пароль, когда пользователь уже авторизирован, будешь в гете передавать чтоли? Какие пароли в куках? На кой зря бд дёргать? Зачем создатели языка сделали сессии?
    Work, buy, consume, die
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 6:40, спустя 2 часа 28 минут 22 секунды

    Naaayh, определять пароль после авторизации пользователя необязательно (если сделать свой алгоритм проверки, которого тебе будет достаточно), в зависимости от задачи. Да и сессии - это не на 100% надежность, и в некоторых случаях лучше делать доп. запрос.
    В общем, каждому своё. Моё имхо - доп. запрос совсем не проблема.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 6:47, спустя 6 минут 32 секунды

    Naaayh, реальная ситуация. Сделал сайт. И два других админа поставили себе пароли. Один 123456, другой 123456789. Я об этом не знал. Ну взломали их (по очереди). Лазают, новости редачат. Ну я быстренько сменил пароль. А он продолжает лазить. В сессии то он авторизован. А если бы была проверка пароля, то их сразу выбило бы.
    Спустя 104 сек.
    ЗЫ сайт на дле был)
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 15 февраля 2010 г. 7:25, спустя 38 минут 12 секунд

    SpartakuS, верное замечание. Только надо еще оговорится, что доп. проверки имеет смысл делать не на каждой странице, а в момент критических действий - поста данных, например.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!