PHP / MySQL birden fazla veritabanı ile çalışma

2 Cevap php

Ben birden fazla veritabanı bağlantıları ile çalışmak için bana gerek bir proje üzerinde çalışıyorum. Ne okudum, ben, sorguda kendisini bağlantıları arasındaki gibi bir şey geçiş mümkün olmalıdır:

mysql_query("SELECT * FROM user_types", $db_core)or die(mysql_error());

Ama hatayı alırsınız:

Table 'db_company.user_types' doesn't exist

Bu yüzden yanlış db bakarak görebilirsiniz, bu son mysql_select_db kapma

That I can gitmek için daha iyi bir yolu olup olmadığını yeniden seçin veritabanı her zorunda istiyorum ama olmaz.

Ben şöyle seçilen veritabanları var:

<?
$currentpage = $_SERVER["REQUEST_URI"];
//Core DB
$db_core_host = "localhost";
$db_core_username = "root";
$db_core_password = "";
$db_core_name = "db_main";
//
$db_core = mysql_connect($db_core_host,$db_core_username,$db_core_password);
mysql_select_db($db_core_name, $db_core)or die(mysql_error());
//Company DB
$db_company_host = $company['db_server'];
$db_company_username = $company['db_username'];
$db_company_password = $company['db_password'];
$db_company_name = $company['db_name'];
//
$db_company = mysql_connect($db_company_host,$db_company_username,$db_company_password);
mysql_select_db($db_company_name, $db_company)or die(mysql_error());
?>

Hepsi de yardımcı olur, ben veritabanı bağlantıları ya echo emin ama ben Resource id # 5 alınamıyor

2 Cevap

Sorguda db.table sözdizimini kullanın:

mysql_query("SELECT * FROM databas_ename.table_name", $db_core) or die(mysql_error());

Eğer söz konusu olan kod çalışır, except iki veritabanları aynı sunucu üzerinde olduğunda. Gerekir mysql_connect (bkz: docs here) ve $new_link parametresi bir göz atın: Eğer aynı sunucu / kullanıcı ile iki kez ararsanız / pass bağlantısı olacak devşirme - Bir bağlantı diğerini etkileme üzerinde mysql_select_db çağrısı ile sona yapar.

Yani, iki farklı sunucular, ya $new_link olarak ayarlanmış varsa true, kod çalışması gerekir.