2017-06-21 59 views
1

系統信息調用未定義功能sqlsrv_connect() - 疑難解答

CMS:WordPress的

Web服務器:XAMPP

PHP版本:30年5月5日

MS Management Studio中17

目標

建立使用PHP

什麼已經做了

  1. 下載SQLSRV驅動程序
  2. 複製的文件php_pdo_sqlsrv_55_nts.dllphp_pdo_sqlsrv_55_ts.dll到目錄MSSQL數據庫連接C:\xampp\php\ext
  3. 將以下幾行添加到dyna MIC擴展部分在php.ini文件:extension=php_pdo_sqlsrv_55_ts.dllextension=php_pdo_sqlsrv_55_nts.dll
  4. 重啓動Web服務器
  5. 確認SQLSRV在phpinfo()函數中列出

代碼

$serverName = "technology-pc\sqlexpress"; 

// The connection will be attempted using Windows Authentication. 
$connectionInfo = array("Database"=>"example_db"); 
$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)); 
} 

錯誤

調用未定義的函數sqlsrv_connect()

回答

2

您已經添加SQLSRV驅動程序擴展名列表的PDO變種,但沒有加入鹼司機php_sqlsrv_55_ts.dll

添加到php。INI:

extension=php_sqlsrv_55_ts.dll 

extension=php_sqlsrv_55_nts.dll 

此外,你真的應該使用驅動程序的任何線程安全(_ts.dll)或非線程安全(_nts.dll)版本,不都。我相信,當你使用Apache服務器時,你應該使用線程安全版本。所以你php.ini應該有:

extension=php_sqlsrv_55_ts.dll 
extension=php_pdo_sqlsrv_55_ts.dll 
+0

謝謝你帶給我的關注。它現在完美。 – Ben

0

您可能編輯了錯誤的php.ini文件。用php信息檢查正確的php.ini文件。

你可以使用這個腳本:

<?php echo phpinfo(); ?> 

或者,如果你有CLI訪問類型的php -i獲得的信息列出。 檢查您的php.ini文件的正確路徑。

0

嘗試下面的代碼連接MSSQL數據庫

$server = 'dburl.com\MSSQLSERVER, 1433'; 
$username = 'uname'; 
$password = 'password'; 

$connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password,"ReturnDatesAsStrings"=>true); 
$conn = sqlsrv_connect($server, $connectionInfo);