[php] अपरिभाषित फ़ंक्शन mysql_connect ()


5 Answers

मैं देखता हूं कि आपने इसे उबंटू के साथ टैग किया है। सबसे अधिक संभावना है कि MySQL ड्राइवर (और संभवतः MySQL) स्थापित नहीं है। मान लें कि आपके पास SSH या टर्मिनल एक्सेस और सूडो अनुमतियां हैं, सर्वर में लॉग इन करें और इसे चलाएं:

sudo apt-get install mysql-server mysql-client php5-mysql

यदि MySQL संकुल या php5-mysql पैकेज पहले से स्थापित हैं, तो यह उन्हें अपडेट करेगा।

अद्यतन करें

चूंकि यह उत्तर अभी भी कभी-कभी क्लिक करता है, मैं PHP 7 को शामिल करने के लिए इसे अपडेट करने जा रहा हूं। PHP 7 को MySQL के लिए एक अलग पैकेज की आवश्यकता है ताकि आप apt-get कमांड के लिए एक अलग तर्क का उपयोग करना चाहें।

sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql

और महत्वपूर्ण बात यह है कि mysql_connect() को PHP v5.5.0 के बाद से हटा दिया गया है। यहां आधिकारिक दस्तावेज़ीकरण का संदर्भ लें: PHP: mysql_connect ()

Question

मैं aptitude install php5-mysql भाग aptitude install php5-mysql (और MySQL / अपाचे 2 को पुनरारंभ किया), लेकिन मुझे अभी भी यह त्रुटि मिल रही है:

घातक त्रुटि: लाइन 21 पर /home/validate.php में अपरिभाषित फ़ंक्शन mysql_connect () पर कॉल करें

phpinfo() कहना है कि /etc/php5/apache2/conf.d/pdo_mysql.ini फ़ाइल को पार्स किया गया है।




सवाल extension=mysqli.dll साथ टैग किया गया है, लेकिन extension=mysqli.dll को अन-टिप्पणी करने का समाधान विंडोज़ के लिए विशिष्ट है। मैं यहाँ उलझन में हूँ?!, वैसे भी, पहली बात चलती है <? php phpinfo ?> <? php phpinfo ?> और Configuration शीर्षक के तहत mysql* के लिए खोजें। अगर आपको ऐसी कोई चीज़ नहीं दिखाई देती है तो इसका मतलब है कि आपने php-mysql स्थापित या सक्षम नहीं किया है। तो पहले php-mysql स्थापित करें

sudo apt get install php-mysql

यह आदेश php-mysql आपके द्वारा पहले से स्थापित php आधार पर स्थापित करेगा, इसलिए संस्करण के बारे में कोई चिंता नहीं !!

फिर यूनिक्स विशिष्ट समाधान आता है, php.ini फ़ाइल में लाइन को अन-टिप्पणी करें

extension=msql.so

सत्यापित करें कि msql.so /usr/lib/php/<timestamp_folder> , ELSE में मौजूद है

extension=path/to/msql.so

फिर अंत में apache और mysql सेवाओं को पुनरारंभ करें, और अब आपको Configrations phpinfo page में Configrations शीर्षक के अंतर्गत mysql अनुभाग देखना चाहिए




मैं अपरिभाषित MySQL_connect () की एक ही समस्या से भी अटक गया था। मैंने PHP.ini फ़ाइल में परिवर्तन करने की कोशिश की लेकिन यह मुझे एक ही त्रुटि दे रहा था। तब मैं इस समाधान में आया जहां मैंने अपने कोड को अवमूल्यित PHP कार्यों से नए कार्यों में बदल दिया।

$con=mysqli_connect($host,$user,$password);

mysqli_select_db($con,dbname); 
//To select the database

session_start(); //To start the session

$query=mysqli_query($con,your query); 
//made query after establishing connection with database.

उम्मीद है इससे आपको मदद मिलेगी । यह समाधान मेरे लिए सही ढंग से काम कर रहा है।




मुझे यह त्रुटि मिल रही थी क्योंकि जिस परियोजना पर मैं काम कर रहा था उसे PHP 5.6 पर विकसित किया गया था और इंस्टॉल करने के बाद, परियोजना php7.1 पर चलाने में असमर्थ थी।

Nginx निर्देशिका (/ etc / nginx /) में, उबंटू / nginx के साथ वग्रेंट का उपयोग करने वाले किसी भी व्यक्ति के लिए, "साइट-उपलब्ध" नामक एक निर्देशिका है जिसमें यूरेन की तरह एक फ़ाइल है जो योनि मास्किन के लिए कॉन्फ़िगर किया गया है। मेरे मामले में homestead.app था। इस फाइल के भीतर एक रेखा है जो कुछ कहती है

    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

वहां आप उस विशेष साइट के लिए इच्छित PHP संस्करण को वांछित में बदल सकते हैं।

इसे गुगल किया लेकिन वास्तव में एक सरल जवाब नहीं मिला जो कहता है कि कहां देखना है और क्या बदलना है।

उम्मीद है कि यह किसी की भी मदद करता है। धन्यवाद।




यदि आप पहले से ही PHP7 का उपयोग कर रहे हैं, तो पूर्व में बहिष्कृत कार्यों mysql_* को पूरी तरह से हटा दिया गया था, इसलिए आपको इसके बजाय पीडीओ-फ़ंक्शंस या mysqli_* फ़ंक्शंस का उपयोग करके अपना कोड अपडेट करना चाहिए।

यदि यह संभव नहीं है, तो एक वर्कअराउंड के रूप में मैंने एक छोटी सी फ़ाइल बनाई है, जो पुराने कार्यों को mysqli_*() fix_mysql.inc.php : fix_mysql.inc.php : fix_mysql.inc.php




(विंडोज़ MySQL कॉन्फ़िगरेशन)

चरण 1: अपाचे नियंत्रण कक्ष> अपाचे> कॉन्फ़िगर> PHP.ini पर जाएं

चरण 2: नोटपैड में खोजें (Ctrl + F) के लिए ;extension_dir = "" (एक के साथ टिप्पणी की जा सकती है ; )। इस पंक्ति को इसके साथ बदलें: extension_dir = "C:\php\ext" (कृपया वाक्य की शुरुआत में ; को हटाने की आवश्यकता नहीं है)।

चरण 3: इसके लिए खोजें: extension=php_mysql.dll और हटाएं ; शुरुआत में।

चरण 4: सहेजें और अपाचे HTTP सर्वर को पुनरारंभ करें। (विंडोज़ पर यह आमतौर पर यूआई के माध्यम से किया जाता है)

बस :)

अगर आपको php_mysql.dll गायब होने में त्रुटियां मिलती हैं तो आपको शायद इस फ़ाइल को php.net साइट या pecl.php.net से डाउनलोड करने की आवश्यकता होगी। (कृपया इस बारे में बताएं कि आप इसे कहां से प्राप्त करते हैं)

PHP पर अधिक जानकारी : विंडोज़ पर विस्तार की स्थापना - मैनुअल




Related