Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 15:23   #1
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию Подключение 2 баз MySQL

Подскажите, как правильно подключить 2 базы данных которые расположены на разных серверах, так чтобы скрипт брал свои таблицы только из одной базы, а во вторю записывались/извлекались только нужные мне запросы, а то как я делаю сейчас скрипт пытается найти во второй базе свои таблицы(которых там нет и не должно быть!)
наглядно я хочу сделать следующее:
Есть База1 и база2, где
база1 - база основного скрипта(тут хранятся таблицы основного скрипта)
база2 - внешняя база(хранятся таблицы стороннего скрипта), требуется сделать запрос в базу 2 и при том не искать в ней таблицы основного скрипта..надеюсь понятно обьяснил..
snikers987 вне форума Ответить с цитированием
Старый 31.03.2011, 16:21   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Код:
$con1=mysql_connect(optoins1); // конект к 1 му серву
$con2=mysql_connect(optoins2); //конект к 2 му серву
$res1=mysql_query(sql_str,$con1);//запрос к первому серву
$res2=mysql_query(sql_str,$con2);//запрос к второму серву
ssdm вне форума Ответить с цитированием
Старый 31.03.2011, 16:47   #3
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от ssdm Посмотреть сообщение
Код:
$con1=mysql_connect(optoins1); // конект к 1 му серву
$con2=mysql_connect(optoins2); //конект к 2 му серву
$res1=mysql_query(sql_str,$con1);//запрос к первому серву
$res2=mysql_query(sql_str,$con2);//запрос к второму серву
Как соединятся то понятно, как обьяснить движку чтобы он таблицы брал именно из первой базы, а не искал их во второй?
snikers987 вне форума Ответить с цитированием
Старый 31.03.2011, 17:25   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
как обьяснить движку чтобы он таблицы брал именно из первой базы,
Что вы подразумеваете под словосочетанием
Цитата:
таблицы брал
?

Последний раз редактировалось ssdm; 31.03.2011 в 17:37.
ssdm вне форума Ответить с цитированием
Старый 31.03.2011, 18:07   #5
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

наверно так
Код:
$connect=mysql_connect(....);
$connect_second=$connect;
mysql_select_db(....., $connect);
mysql_select_db(....., $connect_second);
$result=mysql_query(......, $connect);
$result_second=mysql_query(......, $connect_second);
ps насчет копирования дескрипторов не пробовал
ololo-schoolboy вне форума Ответить с цитированием
Старый 31.03.2011, 18:09   #6
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от ssdm Посмотреть сообщение
Что вы подразумеваете под словосочетанием ?
Подразумевается, что делал выборку данных из таблиц базы1.
snikers987 вне форума Ответить с цитированием
Старый 31.03.2011, 18:26   #7
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Код:
$res1=mysql_query(sql_str,$con1);//запрос к первому серву
$res2=mysql_query(sql_str,$con2);//запрос к второму серву
Обратите внимание на второй аргумент функции mysql_query.
ssdm вне форума Ответить с цитированием
Старый 31.03.2011, 20:14   #8
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

Я понимаю синтаксис, но дело в том, что я использую движок и хочу подключить к нему дополнительно базу сервера Lineage, и сделать из нее выборку..код который вы написали просто производит паралельно манипуляции с каждой базой. Можно както ограничить использование базы lineage в приделах одного скрипта? При закрытии соединения mysql_close() скрипт выдает :

Access denied for user 'ODBC'@'localhost' (using password: NO)

Неужели нет решения?
snikers987 вне форума Ответить с цитированием
Старый 31.03.2011, 20:31   #9
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от snikers987 Посмотреть сообщение
я использую движок
Бензин или дизель? Объем? Модель?

Цитата:
Сообщение от snikers987 Посмотреть сообщение
и хочу подключить к нему дополнительно базу сервера Lineage и сделать из нее выборку
Вам выше написали как подключить эту базу. В чём проблема?

Цитата:
Сообщение от snikers987 Посмотреть сообщение
код который вы написали просто производит паралельно манипуляции с каждой базой. Можно както ограничить использование базы lineage в приделах одного скрипта?
Вам нужно определиться, либо вы хотите подключить одну базу или две. Тут тяжёлый выбор, конечно, стоит подумать. Но он очень важен. Потому что если вдруг (внезапно) вы решите подключить две базы одновременно, то они должны подключаться параллельно как вам написали выше.

Представьте, что вы хотите выпить воды из двух стаканов. Вы берёте по стакану в каждую руку и решаете каждый раз из какого стакана пить. Вы сами решаете и сами поднимаете ту руку, из стакана в которой вы хотите выпить. Тут так же. Каждый раз как вы берёте данные из таблицы (mysql_query) вы сами определяете из какой базы брать данные.

Access denied for user 'ODBC'@'localhost' (using password: NO)

Подозреваю, что вы забыли указать пароль при подключении. Проверьте настройки сервера.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 31.03.2011, 20:40   #10
dekameron
Форумчанин
 
Аватар для dekameron
 
Регистрация: 27.04.2010
Сообщений: 185
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Можно както ограничить использование базы lineage в приделах одного скрипта?
Создайте отдельных пользователей к БД и урежте им права, одному только чтение с одной БД, второму только запись в оставшуюся.

Насчет Access denied for user 'ODBC'@'localhost' (using password: NO)
Попробуйте задать аргументом функции mysql_close дескриптор соединения, т.е.
mysql_close($connect1);
mysql_close($connect2);
Помог - тырк на весы
dekameron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции php редактирования баз MySQL KLAXON PHP 11 04.03.2011 21:39
Подключение Mysql на бесплатный хостинг. Bushel PHP 3 22.11.2010 11:57
Delphi и подключение к mysql Drek Помощь студентам 2 07.11.2010 23:36
Оптимизация баз данных (XML + MySQL) lord22 Фриланс 1 17.06.2010 18:11
Подключение к MySQL серверу Demien БД в Delphi 0 10.08.2009 15:14