Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с несколькими БД одновременно 
:(
    Опции темы
Black
  Дата 30.7.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Не могу работать одновременно с несколькими БД.
Работа ведется только с последней БД

Код

if(!$connect = mysql_pconnect("localhost", "user", "pass")) { exit; }
if (!mysql_select_db('logs', $connect)) { exit; }

if(!$connect1 = mysql_pconnect("localhost", "user", "pass")) { exit; }
if (!mysql_select_db('history', $connect1)) { exit; }


Как видите запрос к БД одинаковый и поэтому во втором случае он просто возвращает мне уже ранее открытый идентификтор подключения к БД.

А мне надо новый открыть, чтобы выбрать другую БД.

Как это можно делать?



Добавлено @ 10:54
Вылазает ошибка:

Table 'xxx' doesn't exist

Т.е. он (PHP) ищет таблицу не в той БД, а в другой где ее нету. А мне надо заставить его работать с несколькими БД одновременно и делать запрос на ту БД, которую я ему (PHP) говорю.

mysql_query("string", $connect);

Я то указываю ему идентификатор, но он то на одну БД :-)




--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Black
Дата 30.7.2005, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



А все, разобрался надо использовать: mysql_connect


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Bikutoru
Дата 30.7.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



PHP-DIRECTOR, а если просто использовать запросы типа

SELECT * FROM database1.table1, database2.table2;

Правда с правами может быть проблема...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 30.7.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



А не проще в нужном месте mysql_select_db() делать, а потом возвращать обратно?
PM ICQ   Вверх
Bikutoru
Дата 31.7.2005, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Цитата
А не проще в нужном месте mysql_select_db() делать, а потом возвращать обратно?

А с подобными вещами проблем не возникнет?
Код

mysql_select_db("db1", $db_link);
$sql_res = mysql_query("...", $db_link);
mysql_select_db("db2", $db_link);
while ($sql_row = mysql_fetch_assoc($sql_res))
{
  $sql_sub_res = mysql_query("...", $db_link);  
  while ($sql_sub_row = mysql_fetch_assoc($sql_sub_res))
  {
     ...
  }
}

Надо бы проверить...

Это сообщение отредактировал(а) Bikutoru - 31.7.2005, 10:45


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 31.7.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Bikutoru @ 31.7.2005, 11:43)
А с подобными вещами проблем не возникнет?

Не думаю. В конце-концов, если скрипт использует 3-4 БД, это уже не правильное проектирование.
А то что лишний коннект - лишний тормоз и память, это факт.
PM ICQ   Вверх
Black
Дата 31.7.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Mal Hack
ну не городить же 100 таблиц в одной БД :-)

Как тогда проектировать?


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 31.7.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(PHP @ 31.7.2005, 14:39)
ну не городить же 100 таблиц в одной БД :-)

ГОРОДИТЬ, ЕЩЕ КАК ГОРОДИТЬ !!!


Я сам думал ггод назад над этой проблемой. Ответ один - ОДНА база.
Эх, жаль тему найти не могу.

А, на другом форуме было: http://forum.woweb.ru/topic8813.html
PM ICQ   Вверх
Bikutoru
Дата 31.7.2005, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Цитата
ну не городить же 100 таблиц в одной БД :-)

Цитата
ГОРОДИТЬ, ЕЩЕ КАК ГОРОДИТЬ !!!

В одном проекте, с которым мне приходится работать ~150 таблиц. Ориентироваться нереально smile

Цитата
В конце-концов, если скрипт использует 3-4 БД, это уже не правильное проектирование.

Совсем не обязательно. Приведу пример. Есть два сайта, находящихся на разных серверах. Они содержат практически одинаковую информацию, которая вводится через админку. Возникает вопрос: зачем дважды вводить одну и ту же иформацию (и держать несколько редакторов), когда можно ввести это на одном сайте и, предварительно преобразовав, скопировать на другой сайт.

Вроде бы понятно объяснил. Ну так вот, как такое реализовать без нескольких баз? Можно, конечно, заливать на одном сайте информацию в XML и считывать на другом, но гораздо проще напрямую копировать нужную информацию из базы в базу...

По-моему, нельзя категорично заявлять. Многое зависит от задачи.

Это сообщение отредактировал(а) Bikutoru - 31.7.2005, 19:43


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 31.7.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Bikutoru @ 31.7.2005, 20:38)
Совсем не обязательно. Приведу пример.

Плохой пример smile Зеркала или резервные копии через RAID делаются и дампы smile
Да и избыточность информации - плохо. Всю инфу надо централизовывать.
Добавлено @ 19:46
Цитата(Bikutoru @ 31.7.2005, 20:38)
По-моему, нельзя категорично заявлять. Многое зависит от задачи.

Так-то оно так, НО приведи такую задачу, где надо использовать именно несколько баз и соединений... В люом члучае ее можно будет спроектировать по нормальному.
PM ICQ   Вверх
Bikutoru
Дата 31.7.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Mal Hack, сайты несколько лет развивались независимо, структуры, в которых хранится информация очень сильно различаются, так что дамп не поможет...
Цитата
Всю инфу надо централизовывать.

Неплохо бы было... но пока шиш с маслом...
Добавлено @ 19:50
Цитата
В люом члучае ее можно будет спроектировать по нормальному.

Ты не учитываешь, что есть уже готовый код, который нужно поддерживать


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 31.7.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Bikutoru @ 31.7.2005, 20:49)
Ты не учитываешь, что есть уже готовый код, который нужно поддерживать

И что? Кто мешает занова написать?
Т.е. грубо говоря... Предположим объединяются две крупные фирмы. Что бцдешь делать с бухами?
Правильно переводить всех на единую централизованную базы. Что касается старых записей то они остются ввиде архива !


Еще, как вариант: http://forum.vingrad.ru/index.php?showtopi...=0&#entry480553

Это сообщение отредактировал(а) Mal Hack - 1.8.2005, 00:44
PM ICQ   Вверх
Bikutoru
Дата 1.8.2005, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 2
Всего: 22



Цитата
Кто мешает занова написать?

Начальство...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Black
Дата 1.8.2005, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Цитата
ГОРОДИТЬ, ЕЩЕ КАК ГОРОДИТЬ !!!


У меня уже 40 таблиц в БД :-) и их будет еще больше.
Ладно уговорили буду городить и городить.

Но другой вопрос... одна то база один файл... не слишком ли он будет тормозать, если слишком сильно на базу нагрузка будет.

А если несколько баз, то несколько файлов и вероятно нагрузка на них будет меньше.
Кто как думает?


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 1.8.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(PHP @ 1.8.2005, 11:02)
Но другой вопрос... одна то база один файл... не слишком ли он будет тормозать, если слишком сильно на базу нагрузка будет.

Это одна таблица один файл (на самом деле 3), а база - много файлов smile


Цитата(Bikutoru @ 1.8.2005, 10:11)
Начальство...

Давить такое начальство надо. Постарайся им объяснить, что если не сделать в один прекрасный момент все рухнет и начальник с прокуротурой общаться будет.
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.