2017-07-26 162 views
0

我想通過PHP連接到SQL Server上的特定數據庫。在WAMP服務器,我已經安裝了PHP 5.6,所以我下載了SQLSRV32.EXE(微軟驅動程序PHP的SQL Server),那麼我抄在這些C文件:\ wamp64 \ BIN \ PHP \ php5.6.25 \分機 enter image description here用PHP連接到SQL Server數據庫

在php.ini中,我加入

extension=php_sqlsrv_56_nts.dll

extension=php_sqlsrv_56_ts.dll

但是,當我在瀏覽器檢查的phpinfo()我沒有看到所列出的SQLSRV模塊。

當我嘗試連接到我的SQL Server數據庫我得到這個錯誤

Fatal error: Call to undefined function sqlsrv_connect()

這裏是我的代碼

<?php 
$serverName = "PC0CFEP2\SQLEXPRESS"; //serverName\instanceName 

// Since UID and PWD are not specified in the $connectionInfo array, 
// The connection will be attempted using Windows Authentication. 
$connectionInfo = array("Database"=>"test"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; 
}else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

我被檢查不同的論壇,我的解決方案,我嘗試了很多,但我仍然無法得到它的工作。我確定它在某些環境中,但我無法找出可能存在的問題。

有什麼建議嗎?非常感謝你。

+0

無論初始化sqlsrv_connect( )它沒有加載,這就是爲什麼你不能調用這個函數。 –

+1

你只需要WAMPServer中的線程安全擴展,這樣'php_sqlsrv_56_ts.dll'非線程安全版本不會運行,並會導致你的問題 – RiggsFolly

+0

@RiggsFolly我刪除了非線程安全版本,但仍然是相同的問題 – JuniorDev

回答

0

首先,請運行MSSQL服務器數據庫。

在php.ini文件中,請添加以下代碼

extension=php_sqlsrv_56_ts.dll 
extension=php_pdo_sqlsrv_56_ts.dll 

,並保持這兩個dll文件\分機文件夾

連接數據庫,嘗試

$serverName = "serverName\sqlexpress"; //serverName\instanceName 
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; 
}else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
+0

感謝您的回答。我做了同樣的事情,但仍然沒有工作。 sqlsrv仍然沒有在php.info上顯示。有沒有其他的設置,我需要在php.ini中更改? – JuniorDev