PHP

2016-07-06 2 views
9

के साथ SQL सर्वर से कनेक्ट करने में असमर्थ sqlsrv स्ट्रिंग पर काम नहीं कर रहा है। Fatal error: Invalid handle returned:PHP

$login = new PDO("sqlsrv:server=MYSQLSERVER\SQLEXPRESS;Database=db_name", "user", "passw"); 

और मुझे त्रुटि संदेश है।

मैं 101% सुनिश्चित हूं कि लॉगिन विवरण ठीक है। क्योंकि यह अन्य परियोजनाओं पर काम करता है। PHP 7 समस्या हो सकती है?

+0

बस बातें कृपया स्थापित करने के लिए की एक जोड़ी; चूंकि इसका नामित उदाहरण यह गतिशील बंदरगाहों का उपयोग कर रहा है जिसे स्थानीय फ़ायरवॉल द्वारा अवरुद्ध किया जा रहा है? क्या आप जानते हैं कि एसक्यूएल एक्सप्रेस में डिफ़ॉल्ट रूप से टीसीपी कनेक्शन सक्षम नहीं है। –

+0

मैं उचित एसक्यूएल सर्वर का उपयोग कर रहा हूं लेकिन यह नाम केवल चित्रण के लिए है। इसके अलावा मुझे कभी-कभी काम करना पड़ता है और कभी-कभी त्रुटि आती है ... – Klapsius

+0

SQLSRV लाइब्रेरी का कौन सा संस्करण आपने स्थापित किया है? स्थिर लोग PHP/7 का समर्थन नहीं करते हैं, आपको गिबहब रेपो से रात को लाया जाना है। –

उत्तर

2

लगता MS-एसक्यूएल से कनेक्ट करने की तरह है, तो आप ODBC का उपयोग करने की आवश्यकता होगी।

संदर्भ: http://php.net/manual/en/pdo.construct.php#120705

$odbc="odbc:Driver={SQL Server};Server=$server;Database=$database;"; 

$cnx = new PDO($odbc , $user, $password); 
+0

जबकि ओडीबीसी को एक एमएसएसएलएल सर्वर से कनेक्शन बनाने के लिए काम करना चाहिए, एसक्यूएलएसआरवी भी काम करना चाहिए। [यह एमएसडीएन लेख] (https://blogs.msdn.microsoft.com/brian_swan/2010/03/08/mssql-vs-sqlsrv-whats-the-difference-part-1/) ओडीबीसी बनाम एसक्यूएलएसआरवी को अच्छी तरह से स्पष्ट करता है। आपके द्वारा लिंक किया गया PHP उत्तर ओडीबीसी का उपयोग करके एमएसएसएलएल से कनेक्ट करने के लिए एक उदाहरण देता है, यह एकमात्र तरीका नहीं है। – afeique

+0

[यहां एक PHP उदाहरण है] (https://docs.microsoft.com/en-us/sql/connect/php/example-application-pdo-sqlsrv-driver) जो पीडीओ और एसक्यूएलएसआरवी ड्राइवर का उपयोग करता है। – afeique

+1

@afeique, क्षमा करें, मैं जितना संभव हो वेब सर्वर पर सच रहने की कोशिश करता हूं। किसी भी मामले में आप 'mssql' और 'sqlsrv' उपसर्ग' odbc' के साथ भ्रमित कर रहे हैं। मुझे लगता है कि कभी-कभी इसे एक निश्चित डिजाइन में कम करना सबसे अच्छा होता है और यदि यह काम करता है, तो 'क्यों' ढूंढने के लिए और अधिक जटिलताओं को जोड़ें। संक्षेप में, सत्यापित करने के लिए न्यूनतम निष्पादन पैटर्न में स्लेट को साफ करना। – GoldBishop

18

डीएसएन में "कनेक्शनपूलिंग = 0" आज़माएं।

कभी कभी काम कर रहा है और कभी कभी लौट त्रुटि

यह पुनः उपयोग कनेक्शन पर एक समस्या हो सकती है।

DSN संदर्भ: https://msdn.microsoft.com/en-us/library/ff628167(v=sql.105).aspx

3


आप नया संस्करण

करने के लिए इसे अद्यतन करना चाहिए क्या आप विंडोज़ का उपयोग कर रहे उल्लेख किया है पीएचपी Sql सर्वर चालक के साथ कोई समस्या है, इस संस्करण पूरी तरह से खिड़कियों

पर काम कर रहा है

https://github.com/Microsoft/msphpsql/releases/tag/v4.1.1-Windows

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