связь между двумя разными базами данных - PullRequest
1 голос
/ 26 ноября 2010

У меня есть два вида базы данных на другом сервере.И сценарий ниже, чтобы установить соединение с БД:

//DB 1
define("DBNAME","xx.xxx.xx.xxx:D:\DATABASE\OCS DATA.FDB"); 
define("DBUSER","USER"); 
define("DBPASS","USER"); 
$dbh = ibase_connect(DBNAME,DBUSER,DBPASS) or die(_ERROR15.": ".ibase_errmsg());

//DB 2
$dbc=mysql_connect(_SRV, _ACCID, _PWD) or die(_ERROR15.": ".mysql_error());
mysql_select_db("qdbase") or die(_ERROR17.": ".mysql_error());

, кроме того, у меня есть запрос на вставку данных в другую БД:

//if structure of the both tables are same then...
$sql = "insert into database1.member select * from database2.member";

//if structure of both tables are not same then
$sql = "Insert into database1.member select columnname1,columnname2 ".
       "from database2.member";

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


while ($ibase_row = ibase_fetch_assoc($rResult)){
  $ins = array();
  foreach ($ibase_row as $col => $val){
    $ins[$col] = mysql_real_escape_string($val);
  }

  $mysql_insert = "INSERT INTO qdbase.table SET ".implode(',', $ins);
  $res = mysql_query($mysql_insert, $dbc) or die();
}

1 Ответ

0 голосов
/ 26 ноября 2010

Существует вероятность того, что ваши системы баз данных поддерживают функцию "dblink".

Если это доступно, вы можете связать mysql с Firebird или наоборот и запустить скрипт от одного из них.

...