चेतावनी: mysql_xx
फ़ंक्शन php 5.5 के बाद से हटाए गए हैं और php 7.0 के बाद से हटा दिए गए हैं ( http://php.net/manual/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 उपयोगकर्ता के पास दोनों डेटाबेस तक पहुँच है और वे एक ही होस्ट पर हैं (यानी दोनों DBs एक ही कनेक्शन से सुलभ हैं) आप कर सकते हैं:
- एक कनेक्शन खुला रखें और
mysql_select_db()
आवश्यकतानुसार बीच में स्वैप करें । मुझे यकीन नहीं है कि यह एक साफ समाधान है और आप गलत डेटाबेस को समाप्त कर सकते हैं।
- डेटाबेस का नाम निर्दिष्ट करें जब आप अपने प्रश्नों (जैसे
SELECT * FROM database2.tablename
) के भीतर तालिकाओं का संदर्भ देते हैं । इसे लागू करने के लिए एक दर्द होने की संभावना है।
कृपया ट्रोलेंशकन के जवाब को भी पढ़ें क्योंकि यदि आप पुराने एक्सटेंशन के बजाय पीडीओ का उपयोग करने में सक्षम हैं तो यह एक बेहतर तरीका है।