2017-04-19 125 views
1

我試圖連接到PHP中的SQL Server。使用本地機器上的XAMPP,一切運行良好。但現在我要把我的應用程序放到生產服務器上。PDO sqlsrv:找不到驅動程序

在此服務器上安裝了Microsoft IIS 6.1並運行PHP版本7.0.7。我還安裝了here的ODBC驅動程序。接下來,我decomment下面一行在我的php.ini文件:

extension=php_sqlsrv_7_nts.dll 
extension=php_pdo_sqlsrv_7_nts.dll 

我從official microsoft site得到的文件。

我的問題是什麼?

不幸的是,我重新啓動IIS後。 PDO的函數拋出具有以下消息PDOException錯誤:

could not find driver 

對於我使用下面的函數,它工作得很好,我的本地計算機上的連接:

try { 
    $con = new PDO("sqlsrv:Server=" . SERVER . ";Database=" . DATABASE, USERNAME, PASSWORD); 
    // set the PDO error mode to exception 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (PDOException $e) { 
    echo "No connection: " . $e->getMessage(); 
    exit; 
} 

我該做別的?

+0

請問您的服務器是否有Microsoft Visual C++ 2015 Redistributable? – Eimsas

+0

@Eimsas是的。它有。 –

+1

然後嘗試檢查日誌,它應該比「無法找到驅動程序」更多的信息我有與WAMP相同的問題,但後來我只是安裝了MS C++並嘗試了幾個版本的php_sqlsrv。還需要重新啓動,至少在wamp中。 – Eimsas

回答

2

當我在Windows Server上找到錯誤日誌後,我自己解決了錯誤。

我在日誌中得到這個錯誤:

[21-Apr-2017 07:12:14 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '...\ext\php_pdo_sqlsrv_7_nts.dll' - %1 is not a valid Win32 application. in Unknown on line 0 

然後我又下載了driver和安裝在x64的驅動程序。最後它沒有任何問題。

相關問題