PHP और MySQL संचार नहीं कर रहा है


9

मैं इस निष्कर्ष पर पहुंचा हूं कि मेरी PHP स्थापना और मेरे MySQL स्थापना को साथ नहीं मिल रहा है; मैं अपना पहला वेब पेज बनाने के लिए काम कर रहा हूं जो सामग्री के लिए MySQL का उपयोग करता है, लेकिन दो दिनों के बाद, मैन पेज, ऑनलाइन प्रलेखन और दर्जनों ट्यूटोरियल, मैं बस काम करने के लिए PHP / MySQL हिस्सा नहीं प्राप्त कर सकता हूं। मेरे पास एक स्थापित होम वेब सर्वर है (मैं केवल व्यवस्थापक / उपयोगकर्ता हूं) जो अपाचे चलाता है और मेरे वेब पृष्ठों को होस्ट करता है। मेरे पास MySQL स्थापित है, और टर्मिनल के माध्यम से एक डेटाबेस बनाने और क्वेरी करने में सक्षम था। मेरे पास PHP स्थापित है, और दस्तावेज़ को टेक्स्ट प्रिंट करने के लिए इको का उपयोग कर सकता है। जब मैं MySQL के साथ काम करता हूं, तो सब कुछ बदल जाता है ...

मेरे पास एक पृष्ठ है जिसमें आरंभीकरण सामान शामिल है। MySQL का उपयोग करने के लिए हार्डकोड HTML और फिर PHP कोड के कुछ पैराग्राफ शामिल हैं। जब मैंने पहली बार पेज लोड किया, तो वह सब एक खाली पेज था। मैंने PHP अनुभाग पर टिप्पणी की और पुष्टि करने के लिए पुनः लोड किया कि सादे HTML ने अभी भी काम किया, जो उसने किया। इसलिए, PHP का कुछ हिस्सा किसी भी पृष्ठ को कभी भी लोड करने से रोक रहा था।

अपना कोड समस्या निवारण शुरू करने के लिए, मैंने सर्वर कनेक्शन के लिए निम्न कोड को छोड़कर, सभी PHP कोड को छोड़ दिया, जिसे विभिन्न अलग-अलग संस्करणों से अनुकूलित किया गया है:

<?
echo("<p>PHP is working</p>"); 
$ses = mysql_connect("localhost","username","password");
if(!$ses){
 echo("<p>Connection to content server failed.</p>");
 exit();
}
echo("<p>Database Connected</p>");
?>

जब पृष्ठ लोड किया जाता है, तो शुरुआत HTML एक अनुच्छेद पढ़ने "PHP काम कर रहा है" के अलावा लोड होता है लेकिन न तो विफलता या सफलता संदेश दिखाई देता है। मैंने कोड से इफ संरचना को हटा दिया - ताकि केवल दो इकोस और mysql_connect बने रहे - और एक ही परिणाम मिला।

ऐसा लगता है कि mysql_connect फीचर सर्वर के कारण कोड को लोड करने पर रोक रहा है जब इसे चलाया जाता है, लेकिन मैं इसे कैसे ठीक करूं इसके लिए विचारों से बाहर हूं। रिकॉर्ड के लिए: मैंने "कनेक्शन = msql.so" लाइन को शामिल करने के लिए php.ini फ़ाइल को संशोधित किया है, और मैं MySQL 5.5, Apache 2.2.22, PHP 5.3.10, Ubuntu 12.04 का उपयोग कर रहा हूं। इसके अलावा, मेरे राउटर और मॉडेम दोनों को सर्वर पर पोर्ट 3306 को अग्रेषित करने के लिए कॉन्फ़िगर किया गया है - हालांकि मैं यह नहीं देखता कि यह कैसे आवश्यक होना चाहिए - और मेरे MySQL उपयोगकर्ता नाम और पासवर्ड को ट्रिपल चेक किया गया है और उन लोगों के समान है जो मैं सफलतापूर्वक उपयोग करता हूं टर्मिनल में।

मैं क्या खो रहा हूँ?


1
'यूज़रनेम' और पासवर्ड को सही यूज़रनेम (शायद रूट) और पासवर्ड से बदलें
टैकियन्स

2
हाँ, मैंने ऐसा किया। मैंने अभी नहीं सोचा था कि फोरम पर उपयोगकर्ता नाम और पासवर्ड को फेंकना एक अच्छा विचार होगा। जैसा कि मैंने अंत में कहा, मैंने यह सुनिश्चित करने के लिए उपयोगकर्ता नाम और पासवर्ड MANY समय की जाँच की है कि यह मेल खाता है जो मैं टर्मिनल के माध्यम से डेटाबेस को सफलतापूर्वक बनाने, उपयोग करने और संपादित करने के लिए उपयोग करता हूं।
केसी हंगर

मैंने 127.0.0.1 के साथ-साथ सर्वर के स्थानीय और वैश्विक आईपी पते के साथ लोकलहोस्ट को बदलने का भी प्रयास किया है, लेकिन उनमें से किसी ने भी कोई अंतर नहीं किया।
केसी हंगर

1
क्या आपने स्थापित किया php5-mysql?
laurent

मुझे पूरा यकीन है, लेकिन मैं इसे फिर से कोशिश करूँगा।
केसी हंगर

जवाबों:


9

सब कुछ ठीक लग रहा है इसलिए मुझे लगता है कि आपका इंस्टॉलेशन पूरा नहीं हुआ है। Mysql और php को संवाद करने के लिए, आपको php5-mysql पैकेज स्थापित करने की आवश्यकता है :

sudo apt-get install php5-mysql

NB: इससे पहले कि यह काम करेगा मुझे कंप्यूटर को पुनरारंभ करना होगा।
user124384

3

php5-mysqlपैकेज स्थापित करें और mysql_connect के बजाय mysqli_connect का उपयोग करें


धन्यवाद, किसी और ने भी सुझाव दिया, और यह काम किया! मैं उत्सुक हूँ, हालांकि, मेरी खोजों में मैं mysqli के बारे में सामान भर में चला गया था (और पीडीओ आमतौर पर वहां भी था), यह क्या है? क्या यह नियमित रूप से mysql से बेहतर बनाता है?
केसी हंगर

MySQLi एक बेहतर संस्करण है।
उल्लू

जो मैं जानता हूं, आपको mysqli का उपयोग करना चाहिए क्योंकि यह php टीम द्वारा अनुशंसित है और mysql_connect अब केवल विकास, रखरखाव में नहीं है। मुझे लगता है कि mysql_connect उदाहरण और कई अन्य चीजों के लिए तैयार बयानों को स्वीकार नहीं करता है।
laurent

@ कैसीहुंग्लर ने जवाब
Tachyons

1
sudo apt-get install php5-mysql

से Tomcat- संस्करण का पता लगाएं /etc/init.d/। Tomcat7 नाम के साथ एक फ़ाइल होनी चाहिए, इसलिए 7 संस्करण है

sudo service tomcat7 stop 
sudo service tomcat7 start

कभी-कभी मशीन रिबूट अन्य मुद्दों को सुलझाने में मदद करता है। रिबूट के बाद, चलाना न भूलें:

sudo service tomcat7 start 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.