Перейти к содержимому


Партнерская программа Kredov

  • Закрытая тема Тема закрыта

Работа с двумя базами

#1 кипятильник

кипятильник
  • Пользователь
  • 102 сообщений
  • Репутация: 0
0

Отправлено 16 Октябрь 2011 - 11:17

Здравсвуйте,
интересует как можно иметь два активных подключения к базам на разных серверах?

$hostname = 'hostname';
$database = 'database';
$username = 'username';
$password = 'password';
$db = mysql_connect($hostname, $username, $password) or die('сервер базы данных не отвечает попробуйте чуть позже');
mysql_query("SET NAMES 'cp1251'");
mysql_select_db($database);





$hostname2 = 'hostname2';
$database2 = 'database2';
$username2 = 'username2';
$password2 = 'password2';
$db2 = mysql_connect($hostname2, $username2, $password2) or die('сервер 2 базы данных не отвечает попробуйте чуть позже');
mysql_query("SET NAMES 'cp1251'");
mysql_select_db($database2);


$sql = mysql_query("SELECT tire_sale.*
FROM `tyresL`.`tire_sale`
WHERE id = '666'");
$rec = mysql_fetch_array($sql);
echo $rec['id'] . '<br>';


$sql2 = mysql_query("SELECT 4tyres.*
FROM `users`.`4tyres`
WHERE number = '+380631033090'");
$rec2 = mysql_fetch_array($sql2);
echo $rec2['number'] . '<br>';


роботает только последнее соеденение

 

 

  • 0

#2 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 16 Октябрь 2011 - 11:56

Никак. Всегда работает только последнее соединение. Если вам нужно обращаться в скрипте к другой базе, то нужно при этом указывать другой идентификатор соединения (в вашем случае это $db и $db2).


  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#3 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 16 Октябрь 2011 - 12:07

жаль что нельзя

>индентификатор соединения (в вашем случае это $db и $db2).
как это?
  • 0

#4 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 16 Октябрь 2011 - 12:28

Очень просто, указывая идентификатор когда искользуете запрос к базе при помощи функции mysql_query():

resource mysql_query ( string query [, resource link_identifier] )
Если параметр link_identifier опущен, используется последнее открытое соединение.


В вашем случае это:

mysql_query ( query, $db );
// или...
mysql_query ( query, $db2 );


P.S. Я немного не правильно выразился, иметь два активных поключения можно, просто при обращении к базе нужно указывать какое активное подключение вы хотите использовать.


  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#5 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 16 Октябрь 2011 - 13:11

сделал не работает, точнее работает последнее соединение
$sql = mysql_query("SELECT tire_sale.*
 FROM `tyresL`.`tire_sale`
 WHERE id = '666'", $db);

 $rec = mysql_fetch_array($sql);	
 echo $rec['id'] . '<br>'; 


 
 $sql2 = mysql_query("SELECT 4tyres.*
 FROM `users`.`4tyres`
 WHERE number = '+380631033090'", $db2);

 $rec2 = mysql_fetch_array($sql2);	
 echo $rec2['number'] . '<br>';


ха заработало!!!, спасибо
  • 0


Оформление форума – IPBSkins.ru