PDO ile SQL Server 2008'e bağlanmak

3 Cevap php

Windows XP SP2 üzerinde PHP 5.2.9-2 ile (express değil) SQL Server 2008'e bağlanmak için çalışıyorum. Ben aynı makinede SQL Server Management Studio uzak SQL Server cezasına bağlanabilirsiniz.

Benim ilk denemem bu oldu:

$conn = new PDO("mssql:host={$host};dbname={$db}", $user, $pass);

Hangi bu hata veriyor:

PHP Fatal error:  
Uncaught exception 'PDOException' with message 
'SQLSTATE[0100] Unable to connect: SQL Server is unavailable or does not exist.  
Access denied. (severity 9)'

İkinci girişim (üzerinde bulunan experts-exchange)

$conn = new PDO("odbc:Driver={SQL Server Native Client 10.0};Server={$host};Database={$db};Uid={$user};Pwd={$pass}", 
                         $user, $pass);

Bu çalışır, ama ben edebilmek istiyorum ki, PDO::lastInsertId() kullanamazsınız:

 Driver does not support this function: driver does not support lastInsertId()

Eğer herhangi bir öneriniz var mı? Herhangi bir yardım büyük mutluluk duyacağız.

3 Cevap

Ben mssql veri sunucusu türü ile pdo bağlanmak DBLIB gerektirir eminim. Eğer dblib makinede yüklü? Eğer sisteminizde ntwdblib.dll yere yolunda bulabilirsiniz emin olun. ben bu alıyoruz hata mesajı ile caz değil biliyorum, ama ben hata mesajı güven emin değilim.

here önerdiği gibi ben ntwdblib.dll güncellenmiş ve şimdi çalışıyor.

Ne yazık ki görünüşe göre bu sürücü ya da desteklemiyor çünkü hala PDO::lastInsertId() kullanamazsınız, bu yüzden gerçekten güçlük değildi. Ancak eşdeğer SELECT @@IDENTITY as Id kullanabilirsiniz.

Yalnızca Windows kimlik doğrulama izni olduğundan, SQL Server kimlik doğrulaması kullanamazsınız.

Sunucu olup olmadığını kontrol edin running Mixed mode authentication.

this SO question size yardımcı olmadığını da kontrol edin.