2015-06-09 47 views
9

我使用致命錯誤:調用在C未定義功能sqlsrv_connect(): XAMPP htdocs中

  • XAMPP版本3.2.1 PHP版本5.6.8。
  • 微軟Azure SQL服務器

目標

我試圖創建一個Web應用程序,將進入到我的數據庫,並能夠選擇INSERT更新DELETE記錄。


問題

我無法連接到數據庫服務器


錯誤

Fatal error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs\BLT\Employee_Database .php on line 25


CODE

<html> 
<head> 
    <Title>Employee Database</Title> 
</head> 
<body> 
<form method="post" action="?action=add" enctype="multipart/form-data"> 
    Last name <input type="text" name="LastName" id="LastName"/></br> 
    First name <input type="text" name="FirstName" id="FirstNamne"/></br> 
    E-mail address <input type="text" name="Email" id="Email"/></br> 
    User Id <input type="text" name="UserId" id="UserId"/></br> 
    Password <input type="password" name="Password" id="Password"/></br> 
    <input type="submit" name="submit" value="Submit"/> 
</form> 

<?php 
$serverName = "jy4nij6vuy.database.windows.net,1433"; 
$connectionOptions = array("Database" => "robertfarb", 
    "UID" => "robertFarb", 
    "PWD" => "******"); 
$conn = sqlsrv_connect($serverName, $connectionOptions); 

if ($conn === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

</body> 
</html> 

這是我試過到目前爲止

  • 我已經安裝了微軟PHP的SQL驅動程序和遵循所有的說明加載驅動程序,但它似乎並沒有工作!
  • 我將php_sqlsrv_56.ts.dll文件添加到PHP的擴展文件夾以及php_pdo_sqlsrv_56.ts.dll
  • 我還將extension=php_sqlsrv_56.ts.dll行添加到php.ini文件中。

任何幫助將不勝感激!

+0

只是因爲你把一個文件放在一個地方,並告訴PHP加載它並不意味着PHP可以實際加載它。如果函數沒有定義,那麼你提供了一個無效的庫(例如錯誤的版本,錯誤的編譯器),並且php跳過它,因爲它不可加載。檢查服務器錯誤日誌,看看在PHP啓動過程中發生了什麼。 –

+0

謝謝!我可以在哪裏查看服務器錯誤日誌? –

+0

它會在php.ini中定義,無論xamp如何。 –

回答

19

The MSSQL extension is not available anymore on Windows with PHP 5.3 or later. SQLSRV, an alternative driver for MS SQL is available from Microsoft: » http://www.microsoft.com/en-us/download/details.aspx?id=20098

分步

  1. 下載SQLSRV32步驟。從EXE(微軟驅動器,用於PHP爲SQL Server):http://www.microsoft.com/en-us/download/details.aspx?id=20098

  2. 選擇路徑:C:\ XAMPP \ PHP \分機

enter image description here

  • 取消註釋或php.ini

  • 重啓Apache從XAMPP控制面板(停止/開始)中附加extension = php_sqlsrv_56_ts.dll

  • 我測試了它和它的作品100%

    您可以找到official Microsoft Git repository最新編譯的二進制文件。

    +4

    這正是我所做的,我仍然無法讓驅動程序加載。任何其他想法? –

    +1

    請確保dll文件在ext文件夾中 –

    +1

    謝謝。爲我完美工作 –

    6

    我跟着LEA田野指導,沒有工作。我需要更多的步驟。 至少對於Windows7(或者我的系統),有一些缺失的步驟(即那些沒有安裝在同一臺服務器/機器上的MSSQL服務器)。

    以下是我做它的工作:

    1. 關注LEA塔諾指導安裝SQLSRV 5.6(或5.3或..)
    2. 下載並安裝OBDC Driver 11(msodbcsql.msi)
    3. 下載和如果已安裝安裝SQL Server Native Client(sqlncli.msi文件)
    4. 檢查(如果沒有,請下載並安裝)Visual C++ Redistributable VS2012 Update4(選擇vcredist_x64.exe)
    相關問題