2012-02-11 14 views
6

पहचान नहीं करता है मैं PHP 5.4 में नए विकास सर्वर का उपयोग करने का प्रयास कर रहा हूं। यह चलाता phpinfo() ठीक लेकिन मेरी साइट कोड पर है और यह भी phpMyAdmin.php वे निम्न त्रुटि फेंक रहे हैं:PHP 5.4 विकास सर्वर mysql_connect()

Call to undefined function mysql_connect()

वे स्थानीय होस्ट के माध्यम से चल रहे हैं: 8000

php -m दिखाया जा रहा है कि mysqlnd भरी हुई है, लेकिन है कि शायद पर्याप्त नहीं ।

ओएस विंडोज 7

कोई विचार?

+0

हाय बॉब। आपको अपनी स्थिति को थोड़ा बेहतर समझाने की जरूरत है। आप किस विकास ढेर को चल रहे हैं? उदाहरण के लिए एक्सएएमपीपी या डब्ल्यूएएमपी या अन्य का उपयोग करना? "नया विकास सर्वर" - हमें यह जानने की जरूरत है कि मदद करने के लिए इसका क्या अर्थ है। – Relequestual

+1

@ रिलेक्वेस्टुअल: उसका मतलब है कि PHP 5.4 अंतर्निर्मित वेब सर्वर: http://php.net/manual/en/features.commandline.webserver.php यह वेब सर्वर केवल विकास उद्देश्यों के लिए डिज़ाइन किया गया है, और इसका उपयोग नहीं किया जाना चाहिए उत्पादन। – Mike

उत्तर

12

mysqlnd, libmysql के बजाय, पुस्तकालय है कि PHP 5.3 के बाद से इस्तेमाल किया जा सकता है 3 पीएचपी एक्सटेंशन द्वारा:

  • mysql, जो mysql_* कार्यों प्रदान करता है,
  • mysqli है, जो प्रदान करता है mysqli_* functons,
  • और pdo_mysql, जो एक को पीएसओ का उपयोग एक MySQL डेटाबेस के साथ करने की अनुमति देता है।

mysqlnd अपने आप में किसी भी समारोह आप अपने PHP स्क्रिप्ट से उपयोग कर सकते हैं निर्यात नहीं करता है: यह केवल उन 3 एक्सटेंशन लिए MySQL कनेक्टिविटी प्रदान करता है - कौन सा है कि कार्यों आप उपयोग कर सकते हैं निर्यात कर रहे हैं।


आप mysql_* कार्यों का उपयोग करना चाहते हैं, तो आप करने के लिए है सुनिश्चित करें कि mysql विस्तार सक्षम किया गया है, कुछ है कि PHP द्वारा पार्स .ini फ़ाइलों में से एक में इस तरह दिखेगा whould साथ बनाना:

extension=mysql.dll 


एक sidenote के रूप: mysql_* कार्यों विशेष रूप से नई परियोजनाओं के लिए, अब और नहीं किया जाना चाहिए: mysql विस्तार पुराना है, और एक हाल (हम उपयोग करने के लिए अनुमति नहीं है क्या, हाल ही में नहीं, वास्तव में) MySQL की विशेषताएं।

इसके बजाय, आपको mysqli या PDO का उपयोग करना चाहिए।

+0

धन्यवाद, मुझे phs.ini में जुड़े mysql.dll और mysqli.dll फ़ाइलों को प्राप्त करने की आवश्यकता है। सब ठीक काम कर रहे हैं। –

2

ऐसा इसलिए है क्योंकि register_globals अब PHP5.4 के रूप में शामिल नहीं है, पिछले संस्करणों में इसे बहिष्कृत किया गया था और आप इसे मजबूर कर सकते थे। इसका कारण यह है कि हैकर्स का शोषण करने के लिए यह बड़ी सुरक्षा अंतराल छोड़ देगा।

संबंधित मुद्दे