النتائج 1 إلى 4 من 4

الموضوع: عمل اتصالين لقاعدتين في صفحة وحده

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    779

    Question عمل اتصالين لقاعدتين في صفحة وحده



    السلام عليكم ورحمة الله و بركاته

    اخواني الخبراء في php + mysql
    عندي سؤال يطرح نفسه :funny:

    هل استطيع عمل اتصالين لقاعدتين مختلفتين في صفحة وحده ؟؟
    بحيث ان الاتصالين يكونن شغالات مع بعض بدون استخدام الاول ثم الرجوع للاخر ( mysql_close )
    بحثت و وجدت هذه الطريقة
    http://www.evolt.org/failover-databa...with-php-mysql

    لكنها ما تنفع لانه اتصال واحد فقط و يغلق الثاني :eek3:





    __________________
    أهلا و سهلا بكم في :-
    موقع دار الأوائل
    تفضل معنا خدمات الاستضافة
    موقع العبقري لخدمات الاستضافة


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    اعمل كل اتصال في function خاصة به واستدعها عند الحاجة اليها





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2003
    المشاركات
    461


    يمكنك فعل ذلك ولكن هناك بعض الشروط

    عليك انشاء اتصال لكل قاعدة ومن ثم تحديد قاعدة البيانات مع معرف الاتصال الخاص بها وتمرير المعرف لكل استعلام لتحديد مكان الاستعلام في اي قاعدة

    لتوضيح ما سبق

    مثال :

    كود 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 ...."); 
    تحياتي





    __________________
    AlwatanVoice, www.alwatanvoice.com
    Almashroo, www.almashroo.com

    Pal Coder == Palestinian Coder

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    779


    مهندس مصرى ... اشكرك لكن هذه الطريقة ما تنفع لانها تغلق الاتصال عند انتقال للاتصال الثاني

    اخوي Pal Coder شكرا لك .. بجرب طريقتك هذه و ان شاء الله تنفع





    __________________
    أهلا و سهلا بكم في :-
    موقع دار الأوائل
    تفضل معنا خدمات الاستضافة
    موقع العبقري لخدمات الاستضافة





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض