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

PHP 使用 ADOdb 連接多種資料庫的完整範例教學

     編輯:PHP 綜合知識

前言

ADOdb 是 PHP 中知名的資料庫抽象層函式庫,支援多種資料庫系統,讓開發者能以統一介面操作不同資料庫。本文將詳細說明如何下載、安裝 ADOdb,並提供連接 Oracle、PostgreSQL、MySQL、Access、SQL Server、DB2 等主流資料庫的完整程式碼範例,最後附上一個可實際應用的多資料庫通用連線函數。

環境準備

首先從官方網站下載 ADOdb 套件,解壓縮後將 adodb 目錄放入專案適當位置。在 PHP 程式中使用 include("adodb/adodb.inc.php"); 即可載入核心類別。

各類資料庫連線範例

1. 連接 Oracle 資料庫

<?php
include("adodb/adodb.inc.php");
$conn = &NewADOConnection('oci8');
$conn->Connect($DBServer, $DBUser, $DBPass);
?>

2. 連接 PostgreSQL 資料庫(兩種寫法)

方式一:分離參數

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('postgres');
$conn->Connect('localhost', 'root', 'pass', 'mydb');
?>

方式二:使用 DSN 字串

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('postgres');
$conn->Connect('host=localhost port=5432 dbname=mydb');
?>

3. 連接 MySQL 資料庫(兩種寫法)

方式一:DSN 字串

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('mysql://root:1981427@localhost/test');
?>

方式二:分離參數

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('mysql');
$conn->Connect('localhost', 'root', '1981427', 'test');
?>

4. 連接 Access 資料庫

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('access');
$conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=d://mydb.mdb;Uid=Admin;Pwd=;");
?>

5. 連接 SQL Server 資料庫

透過 ODBC 連接

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('odbc_mssql');
$conn->Connect("Driver={SQL Server};Server=localhost;Database=mydb;", 'username', 'password');
?>

使用 mssql 驅動

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('mssql');
$conn->Connect("localhost", 'username', 'password', 'mydb');
?>

6. 連接 DB2 資料庫

<?php
include("adodb/adodb.inc.php");
$conn = NewADOConnection('db2');
$conn->Connect("driver={IBM db2 odbc DRIVER};database=mydb;hostname=localhost;port=50000;protocol=TCPIP;uid=root;pwd=pass");
?>

實戰應用:多資料庫通用查詢函數

以下封裝一個 DBConnect() 函數,支援依據傳入的資料庫類型代碼自動建立連線並執行 SQL,回傳查詢結果字串:

public function DBConnect($DBType, $DBServer, $DBUser, $DBPass, $DBName, $sqlStr) {
    $conn = null;
    $result = null;
    $output = "";

    switch ($DBType) {
        case 0: // SQL Server (ODBC)
            $conn = &NewADOConnection('odbc_mssql');
            $conn->Connect("Driver={SQL Server};Server=".$DBServer.";Database=".$DBName.";Uid=".$DBUser.";Pwd=".$DBPass.";");
            break;
        case 1: // Oracle
            $conn = &NewADOConnection('oci8');
            $conn->Connect($DBServer, $DBUser, $DBPass);
            break;
        case 2: // Access
            $conn = &NewADOConnection('access');
            $conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=".$DBName.";Uid=".$DBUser.";Pwd=".$DBPass.";");
            break;
        case 3: // MySQL
            $conn = NewADOConnection('mysql');
            $conn->Connect($DBServer, $DBUser, $DBPass, $DBName);
            break;
        default:
            die("抱歉,暫不支援此資料庫類型,請檢查配置!");
    }

    $result = $conn->Execute($sqlStr);
    if ($result === false) {
        die("查詢失敗:" . $conn->ErrorMsg());
    }

    while (!$result->EOF) {
        $max = $result->fieldcount();
        for ($i = 0; $i < $max; $i++) {
            $output .= $result->fields[$i] . ' ';
        }
        $result->MoveNext();
    }

    $conn->Close();
    return trim($output);
}

呼叫範例

public function ExecuteSql($sqlStr) {
    $DBType = 1; // Oracle
    $DBServer = "arron";
    $DBUser = "system";
    $DBPass = "abcde";
    $DBName = "";
    return $this->DBConnect($DBType, $DBServer, $DBUser, $DBPass, $DBName, $sqlStr);
}

小結

ADOdb 提供統一介面操作多種資料庫,適合需要跨資料庫平台的專案。實務上建議搭配設定檔管理連線參數,並加入例外處理與日誌記錄,提升系統穩定度與可維護性。

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