आप mysql_connect()
पर कई कॉल कर सकते हैं, लेकिन यदि पैरामीटर समान हैं तो आपको '$new_link
' (चौथा) पैरामीटर के लिए सत्य पारित करने की आवश्यकता है, अन्यथा एक ही कनेक्शन का पुन: उपयोग किया जाता है। उदाहरण के लिए:
mysql_query('select * from tablename', $dbh2);
आप एक लिंक उत्तीर्ण नहीं होते हैं:
mysql_query('select * from tablename', $dbh1);
और डेटाबेस 2 के लिए दूसरा पारित:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
फिर क्वेरी करने के लिए डेटाबेस 1 पहले लिंक पहचानकर्ता पारित पहचानकर्ता तब बनाया गया अंतिम कनेक्शन उपयोग किया जाता है (इस मामले में $dbh2
द्वारा प्रतिनिधित्व किया गया) उदाहरण:
mysql_query('select * from tablename');
अन्य विकल्प
MySQL उपयोगकर्ता दोनों डेटाबेस के लिए पहुँच गया है और वे एक ही मेजबान पर हैं (अर्थात, दोनों डीबीएस एक ही कनेक्शन से सुलभ हैं) आप:
- एक कनेक्शन खुला रखें और
mysql_select_db()
फोन के रूप में आवश्यक के बीच स्वैप करने के लिए। मुझे यकीन नहीं है कि यह एक साफ समाधान है और आप गलत डेटाबेस से पूछताछ समाप्त कर सकते हैं।
- जब आप अपने प्रश्नों के भीतर तालिकाओं का संदर्भ देते हैं तो डेटाबेस नाम निर्दिष्ट करें (उदा।
SELECT * FROM database2.tablename
)। यह लागू करने के लिए एक दर्द होने की संभावना है।
कृपया कृपया troelskn के उत्तर को पढ़ें क्योंकि यह एक बेहतर तरीका है यदि आप पुराने एक्सटेंशन के बजाय पीडीओ का उपयोग करने में सक्षम हैं।
स्रोत
2008-11-08 16:42:13
कि "सत्य" बस मुझे काम के घंटे बचाएं – PurplePilot
+1 यह समाधान मेरे लिए काम किया। दो दिनों के डिबगिंग के बाद क्यों मेरे कस्टम वर्डप्रेस टेम्पलेट्स दूसरे डेटाबेस कनेक्शन पर कॉल के बाद $ WP_Query ऑब्जेक्ट तक पहुंच खो रहे थे ... –
उनमें से एक को डिफ़ॉल्ट होने के लिए सेट करना संभव है, और बस ' $ dbh2' केवल दूसरी आवश्यकता के लिए? काम करने के लिए इस दृष्टिकोण के लिए सभी प्रश्नों को बदलने के लिए होने शायद दिनों सिर्फ उन सभी को खोजने ले जाएगा ... – ThomasK