首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 使用 ADOdb 連接 MSSQL 資料庫完整範例

     編輯:PHP 相關知識

ADOdb 是 PHP 知名的資料庫抽象層庫,支援多種資料庫,包含 Microsoft SQL Server。本文提供一個可直接執行的完整範例,展示如何透過 ODBC 驅動連接 MSSQL 並執行參數化查詢。

前置準備

  • 安裝 ADOdb 5.x(建議用 Composer:composer require adodb/adodb-php)
  • 確認伺服器已安裝 SQL Server Native Client 或 ODBC Driver for SQL Server
  • PHP 啟用 php_pdo_odbc 或 php_odbc 擴充

連接與查詢範例

<?php
require_once 'adodb/adodb.inc.php'; // 或 vendor/autoload.php

$conn = ADONewConnection('odbc_mssql');
$dsn = "Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=yuyan;";
$conn->PConnect($dsn, 'username', 'password');

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

$sql = "SELECT * FROM yuyan WHERE nno = ?";
$rst = $conn->Execute($sql, array('005')) or die($conn->ErrorMsg());

while (!$rst->EOF) {
    echo $rst->fields['nname'] . ' - ' . $rst->fields['nno'] . "<br>";
    $rst->MoveNext();
}

$rst->Close();
$conn->Close();
?>

關鍵點解析

  1. 參數化查詢:Execute($sql, $params) 自動處理跳脫,防止 SQL Injection。
  2. PConnect vs Connect:PConnect 使用持久連線,適合高頻存取;Connect 則為一般連線。
  3. 錯誤處理:ErrorMsg() 可取得詳細錯誤資訊,建議搭配 try-catch 或自訂錯誤處理器。
  4. 欄位大小寫:MSSQL 欄位名稱不分大小寫,但 ADOdb 回傳的陣列鍵值通常為小寫,建議統一使用小寫存取。

常見問題排查

  • 找不到驅動:確認 ODBC 驅動名稱完全正確(可在「ODBC 資料來源管理員」查看)。
  • 中文亂碼:連線字串加入 CharacterSet=UTF-8,且資料庫欄位使用 NVARCHAR。
  • 權限不足:確認登入帳號具備資料庫 db_datareader / db_datawriter 角色。

採用 ADOdb 可讓程式碼更具可攜性,未來若遷移資料庫僅需更換驅動名稱即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved