Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из двух разных баз
 
 автор: sirop   (23.07.2006 в 19:19)   письмо автору
 
 

Везде в инете смог найти только описание и примеры работы с подключением к одной базе данных. Никак не могу разобраться, как работать с двумя и более одновременными подключениями к разным базам MySql.
Вот пример кода:

<?
// Подключаемся к базе данных №1
$conn_id=mysql_connect("localhost""root""");
if(!
$conn_id){echo "Нет доступа к базе данных 'base_1'<br>Повторите попытку позже...";exit;}
mysql_select_db("base_1",$conn_id);

// Подключаемся к базе данных №2
$conn_id_users=mysql_connect("localhost""root""");
if(!
$conn_id_users){echo "Нет доступа к базе данных 'base_2'<br>Повторите попытку позже...";exit;}
mysql_select_db("base_2",$conn_id_users);

// После выборки выводим данные из базы №2
$sql_query="SELECT * FROM users_info";
$sql_res=mysql_query($sql_query,$conn_id_users);
if(!
mysql_num_rows($sql_res)) echo mysql_error();

while(
$list mysql_fetch_array($sql_res))
    {
      echo 
$list['id'].",&nbsp;".$list['name'].",&nbsp;".$list['forenames']."<br><br>";
    }

// После выборки выводим данные из базы №1
$sql_query=mysql_query("SELECT * FROM pages_one",$conn_id);
if(!
mysql_num_rows($sql_query)) echo mysql_error();

while(
$list mysql_fetch_array($sql_query))
    {
      echo 
$list['menu'].",&nbsp;";
    }
?>

У меня почему-то происходит подключение только к одной базе данных. Первой в коде. Данные из неё выбирает и выводит нормально. Если их поменять местами, то всё то же - подключается только к первой в списке по коду.
Далее в запросе естественно начинает ругаться Table 'base_2.users_info' doesn't exist
, что такой-то таблицы нет в базе данных (она есть, но в другой базе)

Идентификатор подключения в запросе у меня присутствует. Может кто сталкивался с такой проблемой. Как работать с двумя и более подключениями?

   
 
 автор: cheops   (23.07.2006 в 19:45)   письмо автору
 
   для: sirop   (23.07.2006 в 19:19)
 

Дело в том, что если функция mysql_connect() получает параметры для уже открытого соединения, она не осуществляет повторное соединение, а возвращает дескриптор уже открытого соединения. Для того, чтобы mysql_connect() открыла новое соединение, необходимо передать значение true в качестве четвёртого параметра.
<?php
  $conn_id
=mysql_connect("localhost""root"""true);
?>

   
 
 автор: sirop   (23.07.2006 в 19:55)   письмо автору
 
   для: cheops   (23.07.2006 в 19:45)
 

Да, спасибо не только за наглядный пример, но и за разъяснение.
Всё работает!!!!!!!!!!!!!!!!!!!!!!!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования