समस्या यह है कि आप पोर्ट को mysqli कनेक्शन के पांचवें पैरामीटर के रूप में पास नहीं कर रहे हैं। यदि आप localhost
का उपयोग कर रहे हैं आपके मेजबान के रूप में तो पोर्ट पैरामीटर को नजरअंदाज कर दिया जाता है। यही कारण है कि MAMP स्निपेट में, वे $db_port
. पास नहीं कर रहे हैं एक पैरामीटर के रूप में, इसकी आवश्यकता नहीं है। ऐसा होने का कारण यह है कि localhost
टीसीपी/आईपी का उपयोग नहीं करता है, इसके बजाय यह यूनिक्स सॉकेट का उपयोग करता है।
दूसरे के सुझावों का पालन करने के बाद, आपने शायद कोड को उस बिंदु पर बदल दिया है जहां आपके पास था
$db_host = '127.0.0.1';
यह ठीक है, लेकिन चूंकि आप अब यूनिक्स सॉकेट्स का उपयोग नहीं कर रहे हैं (localhost
), कनेक्शन स्थापित करने के लिए पोर्ट पैरामीटर की आवश्यकता होती है। Mysqli 3306
. का उपयोग करता है यदि आप किसी अन्य को पांचवें पैरामीटर के रूप में निर्दिष्ट नहीं करते हैं तो डिफ़ॉल्ट के रूप में पोर्ट करें। तो वह पोर्ट है जिसे आप उस कोड का उपयोग करके कनेक्ट करने का प्रयास कर रहे हैं। यह वह जगह है जहां Error: Connection refused
से आता है।
समस्या को हल करने के लिए आपको पोर्ट को इस तरह से पांचवें पैरामीटर के रूप में पास करना होगा:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
स्निपेट अपने आप में बहुत अच्छा है, यह आपकी आवश्यकताओं के अनुरूप नहीं है और आपको इसमें कुछ बदलाव करने होंगे। यदि आप स्निपेट का उपयोग करना चाहते हैं तो आपको यह समझना होगा कि वे क्या करते हैं और इस मामले में mysqli कैसे काम करता है। इसे भविष्य के लिए याद रखना सुनिश्चित करें क्योंकि यह निश्चित रूप से आपको इस तरह की अप्रिय स्थितियों और त्रुटियों से बचाएगा।