2011-09-13 12 views
20

मैं PHP 5.3 में अपग्रेड किया गया, और ध्यान दिया कि php_mssql.dll गुम है। थोड़ी देर के बाद, ऐसा लगता है कि 5.3 ने mssql के लिए समर्थन छोड़ दिया है। इसलिए मैंने माइक्रोसॉफ्ट से ड्राइवर डाउनलोड किए, लेकिन मुझे यह काम करने के लिए प्रतीत नहीं होता है।PHP 5.3 के साथ mssql काम कैसे प्राप्त करें?

मैं विंडोज़ पर हूं। मेरे PHP 5.3 की बाहरी निर्देशिका में फ़ाइलों को अनजिप करने के बाद, मुझे क्या करने की ज़रूरत है?

उत्तर

34

http://php.net/manual/en/intro.mssql.php का हवाला देते हुए:

MSSQL विस्तार नहीं उपलब्ध पीएचपी 5.3 या बाद के साथ Windows पर अब है। एसएसएलएसआरवी, एमएस एसक्यूएल के लिए एक वैकल्पिक ड्राइवर माइक्रोसॉफ्ट से उपलब्ध है: »http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

एक बार जब आप यह है कि डाउनलोड किया है, इस पृष्ठ पर दिए गए निर्देशों का पालन करें:

संक्षेप में:

अपने PHP एक्सटेंशन निर्देशिका में ड्राइवर फ़ाइल रखो ।
ड्राइवर को शामिल करने के लिए php.ini फ़ाइल को संशोधित करें। उदाहरण के लिए:

extension=php_sqlsrv_53_nts_vc9.dll 

वेब सर्वर को पुनरारंभ करें।

देखें इसके अलावा (उस पृष्ठ से नकल) SQLSRV विस्तार +०१२३७०५६८२९८ पर स्थित है के लिए

पीएचपी मैनुअलऔर स्थापना के लिए निम्नलिखित प्रदान करता है:

एसक्यूएलएसआरवी एक्सटेंशन आपकी PHP विस्तार निर्देशिका में उचित DLL फ़ाइल जोड़कर और php.ini फ़ाइल में संबंधित प्रविष्टि जोड़कर सक्षम है। SQLSRV डाउनलोड कई ड्राइवर फ़ाइलों के साथ आता है। आप जिस ड्राइवर फ़ाइल का उपयोग करते हैं वह 3 कारकों पर निर्भर करेगा: आप जिस PHP संस्करण का उपयोग कर रहे हैं, चाहे आप थ्रेड-सुरक्षित या गैर-थ्रेड-सुरक्षित PHP का उपयोग कर रहे हों, और क्या आपकी PHP स्थापना VC6 या VC9 कंपाइलर के साथ संकलित की गई थी। उदाहरण के लिए, यदि आप PHP 5.3 चला रहे हैं, तो आप गैर-थ्रेड-सुरक्षित PHP का उपयोग कर रहे हैं, और आपकी PHP स्थापना VC9 कंपाइलर के साथ संकलित की गई थी, आपको php_sqlsrv_53_nts_vc9.dll फ़ाइल का उपयोग करना चाहिए। (यदि आप आईआईएस को अपने वेब सर्वर के रूप में उपयोग कर रहे हैं तो आपको वीसी 9 कंपाइलर के साथ संकलित गैर-थ्रेड-सुरक्षित संस्करण का उपयोग करना चाहिए)। यदि आप PHP 5.2 चला रहे हैं, तो आप थ्रेड-सुरक्षित PHP का उपयोग कर रहे हैं, और आपकी PHP स्थापना VC6 कंपाइलर के साथ संकलित की गई थी, आपको php_sqlsrv_52_ts_vc6.dll फ़ाइल का उपयोग करना चाहिए।

ड्राइवर can also be used with PDO

+1

ठीक है, यह काम कर रहा है। ऐसा लगता है कि उन्होंने सभी कार्यों का नाम बदल दिया है :(क्या मुझे विंडोज़ और लिनक्स के लिए अलग-अलग फ़ंक्शन कॉल का उपयोग करने की आवश्यकता है? पुराने mssql_ * linux के लिए, और windows के लिए sqlsrv_ * की तरह? –

+0

@ user187809 SQLSRV एक्सटेंशन केवल PHP के साथ संगत है विंडोज़ – Gordon

+0

क्या हम SQLSRV एक्सटेंशन में mssql_connect और अन्य mssql_ (x) फ़ंक्शंस का उपयोग नहीं कर सकते हैं? क्योंकि मैंने PHP4 के साथ पहले से ही एक एप्लीकेशन विकसित किया है और हमने PHP 5.3.x संस्करण में अपग्रेड किया है। – Prabu

3

Microsoft Drivers for PHP for SQL Server डाउनलोड करें।फ़ाइलों को निकालें और इनमें से एक का उपयोग करें:

File        Thread Safe   VC Bulid 
php_sqlsrv_53_nts_vc6.dll   No     VC6 
php_sqlsrv_53_nts_vc9.dll   No     VC9 
php_sqlsrv_53_ts_vc6.dll   Yes     VC6 
php_sqlsrv_53_ts_vc9.dll   Yes     VC9 

आप phpinfo() में थ्रेड सुरक्षा स्थिति देख सकते हैं।

अपने एक्सटेंशन निर्देशिका और अपने php.ini में निम्न पंक्ति को सही फ़ाइल जोड़ें:

extension=php_sqlsrv_53_*_vc*.dll 

फ़ाइल आप इस्तेमाल के फ़ाइल नाम का उपयोग करें।

गॉर्डन पहले से ही तैनात रूप में यह Microsoft से नया विस्तार है और mssql_ के बजाय sqlsrv_ * API का उपयोग करता *

अद्यतन:
लिनक्स पर आप अपेक्षित चालकों और न SQLSERV एक्सटेंशन नहीं है।
इस पर चर्चा के लिए Connect to MS SQL Server from PHP on Linux? पर देखें।

संक्षेप में आपको फ्रीटीडीएस इंस्टॉल करने की आवश्यकता है और हाँ आपको linux पर mssql_ * कार्यों का उपयोग करने की आवश्यकता है। लंबे समय में अद्यतन 2

चीजों को आसान बनाने के देख रहा है जो उचित एपीआई का उपयोग अपेक्षित कार्यों के साथ एक आवरण वर्ग बनाने की सिफारिश करेंगे (sqlsrv_ * या mssql_ *) पर जो विस्तार भरी हुई है आधारित।

अपडेट 2: आपको linux पर mssql_ * फ़ंक्शंस का उपयोग करने की आवश्यकता नहीं है। आप पीडीओ + ओडीबीसी + फ्रीटीडीएस का उपयोग कर एक एमएस एसक्यूएल सर्वर से कनेक्ट कर सकते हैं। विंडोज़ पर, पीडीओ + ओडीबीसी + एसक्यूएल नेटिव क्लाइंट के माध्यम से कनेक्ट करने के लिए सबसे अच्छा प्रदर्शन विधि पीडीओ + एसक्यूएलएसआरवी ड्राइवर अविश्वसनीय रूप से धीमा हो सकता है।

+1

लिनक्स और विंडोज के बारे में क्या? मुझे क्या करना है विभिन्न ओएस के लिए विभिन्न फ़ंक्शन कॉल का उपयोग करें? –

+1

माइक्रोसॉफ्ट से एसक्यूएलएसआरवी एक्सटेंशन केवल विंडोज़ के लिए उपलब्ध है। एक लिनक्स वेब सर्वर से एमएस एसक्यूएल सर्वर का उपयोग करने के लिए आपको एक थर्ड पार्टी ड्राइवर का उपयोग करने की आवश्यकता है क्योंकि माइक्रोसॉफ्ट एक प्रदान नहीं करता है। इस सवाल को देखें http : //stackoverflow.com/questions/507479/connect-to-ms-sql-server-from-php-on-linux। – danishgoel

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