Одновременная работа с двумя БД на разных серверах

Руслан

Новичок
Есть необходимость работать с двумя БД на разных серверах.
Пытаюсь так.


PHP:
$Link = mysql_connect("localhost","****","****");
 $Query = "SELECT `order_id` from `table1` where `order_state`='Ожидает'";
// ВОТ ЗДЕСЬ ЭТА ПЕРЕМЕННАЯ  
$resstateq=mysql_db_query   ("DB1",   $Query,   $Link);
   
   while ($resstate = mysql_fetch_array($resstateq))
 {
         
              $orderdataq= mysql_db_query("DB1", "select `user_id`, `order_id`, `mainlink`, `itemid`, `itemname`, `quantity`, `total` from  `jos_k2store_orderdetails` where `order_id`='".$resstate['order_id']."' and `mainlink`<>'no'", $Link);
        
           while ($orderdata = mysql_fetch_array($orderdataq)) 
{
                    
                 
                   $udal = mysql_connect("xx.xx.xx.xx","root","xxxxxxxx");
                   
             // И ВОТ ЗДЕСЬ ОНА ЖЕ.
                            $resstateq=mysql_db_query   ("DB2",   "INSERT INTO `entry` (`type`, `owner`, `group`, `mustbe`, `inside`, `status`, `service`, `group_users`) VALUES (1, '".$orderdata['user_id']."-".$orderdata['order_id']."', '".$orderdata['mainlink']." ', ".$quantity.", 0, 1, 1, 74)",   $udal);

          if($resstateq)
          { 
          	 $uporderq=mysql_db_query   ("DB1",   "UPDATE `DB3` SET `transaction_status`='В работе', `order_state`='В работе' where `order_id` = '".$orderdata['order_id']."'",   $Link);

           }
           
          mysql_close($udal);
           }
      }
Но он почему-то обрабатывает только одну запись, хотя условию удовлетворяют несколько.
Что я делаю неверно? Где почитать? По этой теме как-то мало информации - кросс-серверную работу MySql рассматривают редко видимо.
 

craz

Нестандартное звание
Посмотрите по адаптерам... Два адаптера сделаете и подключитесь ими.
 

Руслан

Новичок
Что есть адаптер? Поиск даёт какие-то адаптеры для работы с зэнд. Но ничего конкретного не нашёл. Может есть ссыль?

А почему не работает такая схема, как у меня? mysql_error молчит.

Я уже даже попытался не перекрещивать. То есть закрывать соединение с одной базой, перед подключением к другой (в примере этого нет), но безрезультатно. Есть какие-то ограничения? Что это может быть? Где почитать?

Если это важно (может для интеграции адаптеров), то на локалхосте я не из под рута.
 

tz-lom

Продвинутый новичок
mysql_db_query - deprecated , да и не нужна вам здесь она
в начале вы хотите итерироваться по результатам в $resstateq
но далее по тексту вы $resstateq убиваете, поэтому когда пытаетесь сделать следующую итерацию там уже не те данные и итерация прерывается
 

Руслан

Новичок
Какой глупец!!!
Извините мужики, что вобще созда эту тему.. одинаковая переменная использовалась.. Ичего то от жду от базы. =))
Удалите тему пожалуйста. Позор мне. Посыпаю голову пеплом.
 

Руслан

Новичок
tz-lom
mysql_db_query - deprecated , да и не нужна вам здесь она
в начале вы хотите итерироваться по результатам в $resstateq
но далее по тексту вы $resstateq убиваете, поэтому когда пытаетесь сделать следующую итерацию там уже не те данные и итерация прерывается
Да нашёл я =)).. добавил свои раскаяния, страница обновилась и увидел ваше сообщение. Я надеялся, что никто моего позора раньше меня не увидит. =)
 

craz

Нестандартное звание
нет прощения тебе) а про адаптеры ты все таки почитай, так правильно и хорошо
 
Сверху