चेतावनी : mysql_xx
php 5.5 के बाद से फ़ंक्शन बहिष्कृत हैं और php 7.0 के बाद से हटा दिए गए हैं (देखें http://php.net/ मैनुअल/intro.mysql.php
), mysqli_xx
. का उपयोग करें कार्य करें या नीचे दिए गए उत्तर को @Troelskn
आप mysql_connect()
पर कई कॉल कर सकते हैं , लेकिन यदि पैरामीटर समान हैं तो आपको '$new_link
. के लिए सही पास करना होगा ' (चौथा) पैरामीटर, अन्यथा उसी कनेक्शन का पुन:उपयोग किया जाता है। उदाहरण के लिए:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
फिर डेटाबेस 1 को क्वेरी करने के लिए पहला लिंक पहचानकर्ता पास करें:
mysql_query('select * from tablename', $dbh1);
और डेटाबेस 2 के लिए दूसरा पास करें:
mysql_query('select * from tablename', $dbh2);
यदि आप एक लिंक पहचानकर्ता को पास नहीं करते हैं तो बनाए गए अंतिम कनेक्शन का उपयोग किया जाता है (इस मामले में $dbh2
द्वारा दर्शाया गया है। ) जैसे:
mysql_query('select * from tablename');
अन्य विकल्प
यदि MySQL उपयोगकर्ता के पास दोनों डेटाबेस तक पहुँच है और वे एक ही होस्ट पर हैं (अर्थात दोनों DB एक ही कनेक्शन से पहुँच योग्य हैं) तो आप यह कर सकते हैं:
- एक कनेक्शन खुला रखें और
mysql_select_db()
पर कॉल करें के रूप में आवश्यक के बीच स्वैप करने के लिए। मुझे यकीन नहीं है कि यह एक साफ समाधान है और आप गलत डेटाबेस से पूछताछ कर सकते हैं। - डेटाबेस नाम निर्दिष्ट करें जब आप अपने प्रश्नों के भीतर तालिकाओं का संदर्भ देते हैं (उदाहरण के लिए
डेटाबेस 2.टेबलनाम से चुनें *। ) इसे लागू करने में कठिनाई होने की संभावना है।
कृपया troelskn का उत्तर भी पढ़ें क्योंकि यदि आप पुराने एक्सटेंशन के बजाय PDO का उपयोग करने में सक्षम हैं तो यह एक बेहतर तरीका है।