2011-12-20 4 views
0

Так что мне нужно знать, как я могу подключить сразу две базы данных. Что я делаю, это получение некоторой информации из одной таблицы db и ее перенос в другую БД.OOPHP соединяет две базы данных

Я пробовал следующее.

public function sitelistingcron() 
{ 

    $sqlk = mysql_query("SELECT * FROM customer_detail WHERE approvedforsite = 2 OR approvedforsite = 3"); 


    include_once('database2.php'); 
    $fet = new Dbase(); 
     $fet->Connect(); 
     $fet->DB(); 
    while($row = mysql_fetch_array($sqlk)){ 
     //ADD 
     $this->customer_id = $row['customer_id']; 
     $this->tradingname = $row['TradingName']; 
     $this->phone  = $row['Phone']; 
     $this->street  = $row['Street']; 
     $this->city   = $row['City']; 
     $this->state  = $row['State']; 
     $this->postcode  = $row['PostCode']; 
     $this->approved = $row['approvedforsite']; 




     $this->description = $row['Description']; 

     if($this->approved = 2) 
     { 
      $sqk = mysql_query("INSERT INTO approved_business_info (id, tradingname, phonenumber, street, postcode, suburb, discription) VALUES ({$this->customer_id}, '{$this->tradingname}', '{$this->phone}', '{$this->street}', '{$this->city}', '{$this->postcode}', '{$this->description}') ON DUPLICATE KEY UPDATE id = {$this->customer_id}, tradingname ='{$this->tradingname}', phonenumber ='{$this->phone}', street = '{$this->street}', postcode = '{$this->postcode}', suburb = '{$this->city}', discription = '{$this->discription}'") or mysql_error(); 


     print "INSERT INTO approved_business_info (id, tradingname, phonenumber, street, postcode, suburb, discription) VALUES ({$this->customer_id}, '{$this->tradingname}', '{$this->phone}', '{$this->street}', '{$this->city}', '{$this->postcode}', '{$this->description}') ON DUPLICATE KEY UPDATE id = {$this->customer_id}, tradingname ='{$this->tradingname}', phonenumber ='{$this->phone}', street = '{$this->street}', postcode = '{$this->postcode}', suburb = '{$this->city}', discription = '{$this->discription}'"; 


     } 

     //REMOVE 
     if($this->approved = 3) 
     { 
      $sqk = mysql_query("DELETE FROM `approved_business_info` WHERE id = {$this->customer_id}"); 
     } 
    } 
} 
+0

'$ result = sql_query ($ conn1, $ sql1); $ sql2 = makeInsertStatements ($ result); sql_update ($ conn2, $ sql2); ' – bdares

+1

Как * вы подключаетесь к db? Просто сделайте это дважды ...? – deceze

+1

, пожалуйста, прекратите использовать старую функцию 'mysql_ *' и научитесь использовать [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/mysqli) с подготовленными операторами. –

ответ

2

Вы можете использовать два отдельных DB соединения, используя расширение mysql_ просто отслеживание ресурса подключения и передачи его к каждому mysql_ функции вызова:

$db1 = mysql_connect(...); 
$db2 = mysql_connect(...); 

mysql_query('SELECT ...', $db1); 
mysql_query('INSERT ...', $db2); 

Посмотрите на документацию для http://www.php.net/mysql_connect а другие mysql_ функции.

+0

Да, вы могли бы сделать это так, но я придумал другой путь. – RussellHarrower

+0

Хотите поделиться своим решением? – deceze

Смежные вопросы