يمكنك فعل ذلك ولكن هناك بعض الشروط
عليك انشاء اتصال لكل قاعدة ومن ثم تحديد قاعدة البيانات مع معرف الاتصال الخاص بها وتمرير المعرف لكل استعلام لتحديد مكان الاستعلام في اي قاعدة
لتوضيح ما سبق
مثال :
كود PHP:
$link1 = mysql_connect('localhost', 'user', 'pass');
$link2 = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('db1', $link1);
mysql_select_db('db2', $link2);
mysql_query("UPDATE table SET field='value'", $link1);
mysql_query("UPDATE table SET field='value'", $link2);
mysql_close($link1);
mysql_close($link2);
ملاحظة 1 / في المثال السابق عند الاستدعاء الثاني لدالة mysql_connect فانها لن تنشئ اتصال جديد بل ستستخدم الاتصال السابق والذي تم انشاءه في link1 لحل هذه المشكلة يوجد حلين :
الاول : قبل كل استعلام عليك استخدام الدالة mysql_select_db
الثاني : استخدام الباراميتر الرابع في mysql_connect لاجبار الدالة على انشاء اتصال جديد
لتصبح
كود PHP:
$link2 = mysql_connect('localhost', 'user', 'pass', true);
ملاحظة 2 / في حالة عدم تمرير معرف الاتصال الى دالة mysql_query فانها تعتمد معرف اخر اتصال انشئ قبل استدعاء الدالة
ملاحظة اخيرة / يفضل استخدام OOP لحل هذه المشكلة
هذا مثال بسيط يوضح المفهوم
كود PHP:
class DB
{
private $link;
public __construct($server, $user, $pass, $db, $newcon = false)
{
$this->link = mysql_connect($server, $user, $pass, $newcon);
mysql_select_db($db, $this->link);
}
public query($sql)
{
mysql_query($sql, $this->link);
}
}
$db1 = new DB('localhost', 'user', 'pass', 'db1');
$db2 = new DB('localhost', 'user', 'pass', 'db2', true);
$db1->query("SQL ....");
$db2->query("SQL ....");
تحياتي