PDA

View Full Version : سوال: استفاده همزمان از 2 دیتابیس



rash44
یک شنبه 01 خرداد 1390, 08:45 صبح
سلام
آیا این امکان وجود داره در یک تکه برنامه همزمان از 2 دیتابیس استفاده کرد ؟

مثلا :


<?php
reauire_once('db1.php');
$link=db_connect();
$sql="";
$result=mysql_query($sql);
//
//
//
mysql_close($link);
// *********
reauire_once('db2.php');
$link2=db_connect();
$sql2="";
$result2=mysql_query($sql);
//
//
//
mysql_close($link2);
?>


من به این صورت استفاده می کنم اما کوئری ها و نتایج مربوط به دیتابیس دوم بدست نمیاد و اصلا اجرا نمیشه

eshpilen
یک شنبه 01 خرداد 1390, 09:16 صبح
امکانش که هست تاجاییکه میدونم.
ولی بنظرم شما موقع استفاده از توابع MySQL باید یه پارامتر دیگه هم بهشون پاس کنید تا از کانکشن مربوطه استفاده کنن، وگرنه فکر میکنم بصورت پیشفرض از آخرین کانکشن ایجاد شده استفاده میکنن.
رفرنس توابع MySQL رو نگاهی بکنید ببینید کجا باید $link یا $link2 رو بهشون پاس کنید.

Mahdi.Spirit
یک شنبه 01 خرداد 1390, 10:33 صبح
اينجا رو نگاه كنيد:
http://php.net/manual/en/function.mysql-select-db.php

MMSHFE
دوشنبه 02 خرداد 1390, 07:12 صبح
با سلام، دوست گرامي، براي چنين وضعيتهايي، بايد دقت كنيد كه اگه ديتابيس ها روي يك سرور قرار دارن، نياز به دوبار استفاده از mysql_connect نداريد (كلاً اين كار اشتباهه). دقت كنيد كه اين دستور شما رو به موتور MySQL متصل ميكنه نه به ديتابيس. بنابراين اين دستور در هر حال بايد يكبار استفاده بشه. دستور mysql_select_db براي انتخاب ديتابيس پيشفرض هست و معادل دستور use در خود MySQL عمل ميكنه. درنتيجه بعد از استفاده از اين دستور، ديگه نيازي نيست براي دسترسي به هر جدول، نام ديتابيس رو هم ذكر كنيم. حالا اگه ميخواين با چند ديتابيس كار كنيد، از اين دستور استفاده نكنيد و Queryها رو اينطور بنويسيد:


$result1 = mysql_query('SELECT * FROM `db1`.`table` ORDER BY `id`');
$result2 = mysql_query('SELECT * FROM `db2`.`table` ORDER BY `id`');

موفق باشيد.