iLMS知識社群(Sites)師生部落格(Blogs)朝陽首頁(Homepage)TronClass教學平台登入
位置: 陳鉞勳 > 未分類
PHP Connect to SQL Server (XAMPP)
by 陳鉞勳 2018-05-03 21:28:25, 回應(3), 人氣(357)
本文是利用XAMPP伺服器撰寫網頁,透過PHP與MSSQL進行溝通
至於為什麼要有這些步驟,則是因為XAMPP本身沒有MSSQL的函式,因此需要另外增加擴充函式以便呼叫

以下是環境建立步驟(安裝的軟體,請注意版本)

XAMPP 5.6.35 / PHP 5.6.35

https://www.apachefriends.org/zh_tw/download.html

SQLSRV32.EXE (sqlsrv 擴充函式)

https://www.microsoft.com/en-us/download/details.aspx?id=20098

ENU\x64\msodbcsql.msi (ODBC驅動程式,原本若無請直接安裝到底即可)

https://www.microsoft.com/en-us/download/details.aspx?id=36434

首先安裝XAMPP及ODBC驅動程式

XAMPP安裝完後,開啟下載好的SQLSRV32.EXE (此檔必須對應PHP的版本,像5.6.35就對應SQLSRV32.exe這個檔)

會跳出路徑選擇,選擇D:/XAMPP/php/ext   (這是你剛才安裝XAMPP的路徑,每個人都不同,若是安裝在C槽就是C:/XAMPP/php/ext)

之後更改php.ini (這要找一下,路徑在XAMPP/php ; 也可以從Control Panel中開啟)

記事本打開後用find找到很多個 'extension= '的地方

在最下面加上

extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll

然後請注意這是擴充函式,若是下載的檔案跟本文不同請記得自己更改名稱

存檔,重啟伺服器,到這裡就可以開始寫網頁了


然後如果原本有其它伺服器,可能會造成Port衝突(預設都為80,若沒有這個問題請無視這段),所以須更改Port

XAMPP更改Port(以下是將80更改為8080):

開啟XAMPP Control Panel -> Config -> Apache(httpd.conf)

透過Find找到以下地方(有兩處須更改):

ServerName localhost:8080 (更改地方1,改成8080)

#Listen 12.34.56.78:80

Listen 8080 (←更改地方2,改成8080)

存檔後網址就變成http://localhost:8080 (原始網址為http://localhost)


以上是XAMPP(連接MSSQL)建立的步驟,並非每個伺服器都適用或者需要這種方法

使用XAMPP只是眾多方法之一,還有其它更好的方法,依自己需求而定


PHP對應sqlsrv的版本可參考https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017

http://www.ucamc.com/e-learning/computer-skills/146-php-sqlsrv.html

回應(3)
https://yzl1218.tian.yam.com/posts/72444637
網頁存放路徑 - XAMPP/htdocs

在裡面建立一個.php檔 ( 例如connect.php)

<?php   
    //SQL Server 伺服器名稱 需填入你的伺服器名稱
    $serverName = "127.0.0.1";
    //資料庫名稱、帳號、密碼
    $connectionInfo = array( "Database"=>"資料庫名稱", "UID"=>"資料庫帳號", "PWD"=>"資料庫密碼", "CharacterSet" => "UTF-8");
    $conn = sqlsrv_connect($serverName, $connectionInfo);

    //若是連線成功 $conn會返回true
    if($conn){
         echo "Connection";
    }else{
         echo "Oh my god";
         die(print_r( sqlsrv_errors(), true));   
    }

     sqlsrv_close($conn); // Close
?>

存檔

開啟XAMPP Control Panel 的 Apache後
打開網頁 進入 http://localhost:8080/connect.php  (注意port跟檔名)
連線成功會看見
Connection;失敗則會看見一堆錯誤訊息
使用PDO連接sql server

<?php
/* 伺服器名稱, 資料庫名稱, 帳號, 密碼    */
$conn = new PDO("sqlsrv:Server=伺服器名稱;Database=資料庫名稱", "帳號", "密碼");
?>

沒出現錯誤則代表正常連接
回應