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

使用 PEAR DB 類庫進行資料庫操作

     編輯:PHP 綜合知識

簡介

PEAR DB 是早期 PHP 專案常用的資料庫抽象層,提供統一介面操作 MySQL、PostgreSQL 等多種資料庫。雖然現代專案多改用 PDO 或 ORM,但在維護舊系統時仍常遇到。

常見操作範例

1. 連線資料庫

<?php
require_once "DB.php";

$conn = DB::connect("mysql://root:1981427@localhost/test");
if (DB::isError($conn)) {
    die("資料庫連線失敗:" . $conn->getMessage());
}
echo "資料庫連線成功";
?>

2. 執行查詢並逐列讀取

<?php
require_once "DB.php";

$conn = DB::connect("mysql://root:1981427@localhost/test");
if (DB::isError($conn)) {
    die("連線失敗:" . $conn->getMessage());
}

$rs = $conn->query("SELECT id, username, password FROM tablename1");
if (DB::isError($rs)) {
    die("查詢失敗:" . $rs->getMessage());
}

while ($rs->fetchInto($rows)) {
    echo "編號:{$rows[0]}<br>";
    echo "姓名:{$rows[1]}<br>";
    echo "密碼:{$rows[2]}<br>";
    echo "<hr>";
}
?>

3. 使用 limitQuery 分頁查詢

<?php
require_once "DB.php";

$conn = DB::connect("mysql://root:1981427@localhost/test");
if (DB::isError($conn)) {
    die("連線失敗:" . $conn->getMessage());
}

// 從第 2 筆開始取 5 筆(即第 3~7 筆)
$rs = $conn->limitQuery("SELECT id, username, password FROM tablename1", 2, 5);
if (DB::isError($rs)) {
    die("查詢失敗:" . $rs->getMessage());
}

while ($rs->fetchInto($rows)) {
    echo "編號:{$rows[0]}<br>";
    echo "姓名:{$rows[1]}<br>";
    echo "密碼:{$rows[2]}<br>";
    echo "<hr>";
}
?>

4. 使用 prepare/execute 進行參數化更新

<?php
require_once "DB.php";

$conn = DB::connect("mysql://root:1981427@localhost/test");
if (DB::isError($conn)) {
    die("連線失敗:" . $conn->getMessage());
}

$stmt = $conn->prepare("UPDATE tablename1 SET password = ? WHERE id = ?");
if (DB::isError($stmt)) {
    die("準備失敗:" . $stmt->getMessage());
}

$result = $conn->execute($stmt, array('Susan', 1));
if (DB::isError($result)) {
    die("更新失敗:" . $result->getMessage());
}
echo "資料更新成功";
?>

關鍵方法速查

方法用途
DB::connect()建立連線,回傳連線物件或錯誤物件
DB::isError()檢查回傳值是否為錯誤物件
$conn->query()執行 SQL,回傳結果集或錯誤
$conn->limitQuery()支援 OFFSET/LIMIT 的分頁查詢
$conn->prepare()預處理 SQL 陳述式,回傳 statement handle
$conn->execute()執行預處理陳述式,可傳入參數陣列
$rs->fetchInto()將下一列資料存入陣列變數

遷移建議

新專案建議直接使用 PDO 或成熟的 ORM(如 Eloquent、Doctrine),PEAR DB 已不再積極維護且缺乏現代安全特性(如預處理參數綁定的完整支援)。

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