2012-04-03 21 views
15

पर कॉल करें मैंने पहले कभी PHP का उपयोग नहीं किया है और IIS7 और PHP5.3 चलाने वाली Windows मशीन पर SQL Server 2008 इंस्टेंस से कनेक्ट करने का प्रयास कर रहा हूं।PHP घातक त्रुटि: अपरिभाषित फ़ंक्शन mssql_connect()

मैं डाउनलोड और C:\Program Files (x86)\PHP\ext में here से SQLSRV30.EXE स्थापित किया है C:\Program Files (x86)\PHP\php.ini को यह कहा:

extension=php_sqlsrv_53_nts.dll 

तो पूरा सर्वर को पुनः आरंभ। मैं अभी भी मेरी लॉग फ़ाइल में घातक त्रुटियों कह रही:

PHP Fatal error: Call to undefined function mssql_connect() 

क्या मैं PHP 5.3 से Microsoft एसक्यूएल सर्वर 2008 से कनेक्ट करने के IIS7/Windows सर्वर 2008 पर चल रहा है क्या करना होगा? मुझे यकीन है कि यह वास्तव में कुछ गूंगा है कि मैं याद कर रहा हूँ है हूँ ...

पूर्ण phpinfo ->http://demo.mandibleweb.com/zapified/hello.php

phpinfo():

PHP Version 5.3.10 





System 

Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 



Build Date 

Feb 2 2012 20:10:58 



Compiler 

MSVC9 (Visual C++ 2008) 



Architecture 

x86 



Configure Command 

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze" 



Server API 

CGI/FastCGI 



Virtual Directory Support 

disabled 



Configuration File (php.ini) Path 

C:\Windows 



Loaded Configuration File 

C:\Program Files (x86)\PHP\php.ini 
+0

मेरे पास समान स्थिति थी (कोई MySQL ब्लॉक नहीं), और मेरा समाधान यहां है: http://stackoverflow.com/questions/5179535/fatal-error-call-to-undefined-function-mysql-connect-in-c -apache-htdocs-test –

उत्तर

30

मैंने अभी अपने dev सर्वर पर उस एक्सटेंशन को स्थापित करने का प्रयास किया है।

सबसे पहले, सुनिश्चित करें कि एक्सटेंशन सही ढंग से सक्षम है। आपका phpinfo() आउटपुट पूरा प्रतीत नहीं होता है।

यह वास्तव में ठीक से स्थापित है, तो आपके phpinfo() एक अनुभाग है कि इस तरह दिखता है होना चाहिए: enter image description here

आप अपने phpinfo() में उस अनुभाग नहीं मिलता है। सुनिश्चित करें कि आप सही संस्करण का उपयोग कर रहे हैं। एक्सटेंशन के गैर-थ्रेड-सुरक्षित और थ्रेड-सुरक्षित संस्करण दोनों हैं।

अंत में, अपनी extension_dir सेटिंग जांचें। डिफ़ॉल्ट रूप से यह यह है: extension_dir = "ext", अधिकांश समय यह ठीक काम करता है, लेकिन यदि यह कोशिश नहीं करता है: extension_dir = "C:\PHP\ext"

============================================== =============================

संपादित करें, जिन्हें नए जानकारी:

तुम गलत समारोह का उपयोग कर रहे । mssql_connect()Mssql एक्सटेंशन का हिस्सा है। आप माइक्रोसॉफ्ट के एक्सटेंशन का उपयोग कर रहे हैं, इसलिए,, sqlsrv_connect() का उपयोग माइक्रोसॉफ्ट ड्राइवर के लिए एपीआई के लिए SQLSRV_Help.chm जो आपके ext निर्देशिका के लिए निकाला जा चाहिए जब आप विस्तार निकाली को देखो।

+0

क्षमा करें, यहां पूर्ण [phpinfo()] है (http: // demo.mandibleweb.com/zapified/hello.php), मेरे पास 'sqlsrv' सेक्शन – Greg

+0

है मेरा उत्तर अपडेट किया गया: डी – F21

+0

हां, मैं कहने वाला था कि मुझे phpinfo में mssql सेक्शन नहीं मिला। –

1

php.ini शायद जरूरत पढ़ने के लिए: extension=ext\php_sqlsrv_53_nts.dll

या PHP निष्पादन के रूप में ही निर्देशिका में फाइल को ले जाते हैं। Odbc_pdo काम करने के लिए मैंने इस सप्ताह अपने php5 इंस्टॉल किया है। : पी

इसके अतिरिक्त, यह उचित phpinfo() आउटपुट की तरह दिखता नहीं है। यदि आप
<? phpinfo(); ?> सामग्री के साथ फ़ाइल बनाते हैं और उस पृष्ठ पर जाते हैं, तो HTML आउटपुट को लोड किए गए मॉड्यूल वाले एक से अधिक अनुभाग दिखाना चाहिए। (जोड़ने के लिए संपादित: जैसा उपरोक्त स्वीकृत उत्तर के स्क्रीनशॉट में दिखाया गया है)

+0

क्षमा करें, यहां पूर्ण [phpinfo()] है (http://demo.mandibleweb.com/zapified/hello.php) – Greg

0

मैं आईआईएस और mysql का उपयोग कर रहा मेरे php ग में स्थापित किया गया था (सीधे डाउनलोड, WAMP या XAMPP के बिना): \ php मैं "अपरिभाषित समारोह mysql_connect() करने के लिए कॉल" मुझे बदलाव के लिए की त्रुटि हो रही थी extension_dir का काम किया। यह वही है जो मैंने किया था। php.ini में, मूल रूप से, मेरे पास यह लाइन

थी; खिड़कियों पर: extension_dir = "ext"

मैं इसे करने के लिए बदल:

; विंडोज़ पर: extension_dir = "सी: \ php \ ext"

और यह काम किया। बेशक, मैंने अन्य चीजों को डीएल एक्सटेंशन इत्यादि को भी कम करने की तरह किया, जैसा कि अन्य टिप्पणियों में बताया गया है।

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