iLMS知識社群(Sites)師生部落格(Blogs)朝陽首頁(Homepage)TronClass教學平台登入
位置: 陳鉞勳 > 未分類
PHP Connect to SQL Server
by 陳鉞勳 2018-05-03 21:28:25, 回應(3), 人氣(74)
本文是利用XAMPP伺服器撰寫網頁,透過PHP與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安裝完後,開啟SQLSRV32.EXE (此檔必須對應PHP的版本,像5.6.35就對應SQLSRV32.exe這個檔)

會跳出路徑選擇D:/XAMPP/php/ext   (這是你剛才安裝XAMPP的路徑 C或D)

之後更改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)

#Listen 12.34.56.78:80

Listen 8080 (←更改2)

存檔後網址就變成http://localhost:8080


以上是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=資料庫名稱", "帳號", "密碼");
?>

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