當前位置: 首頁> 最新文章列表> PHP PDO實現數據分組與聚合查詢技巧詳解

PHP PDO實現數據分組與聚合查詢技巧詳解

M66 2025-09-30

引言

在Web應用的開發過程中,我們經常需要對數據庫中的數據進行分組統計或聚合計算。使用PHP的PDO(PHP Data Objects)擴展不僅能夠簡化數據庫操作,還能提升代碼的安全性與可維護性。本文將帶你了解如何通過PDO實現數據分組與聚合查詢,並提供完整的示例代碼。

使用PDO連接數據庫

在進行分組和聚合查詢之前,首先要建立數據庫連接。下面的示例演示瞭如何通過PDO連接MySQL數據庫:

$dsn = 'mysql:host=localhost;dbname=mydatabase;';
$user = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "成功連接到數據庫!";
} catch (PDOException $e) {
    echo "連接數據庫失敗:" . $e->getMessage();
}

以上代碼中,我們通過PDO創建數據庫連接,並設置異常模式,確保在出錯時能夠捕獲並提示具體信息。

數據分組查詢

假設我們有一張學生表,包含學生姓名和所屬班級,現在希望按照班級統計學生人數,可以使用以下SQL結合PDO實現:

$sql = "SELECT class, COUNT(*) as student_count FROM students GROUP BY class";

try {
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($result as $row) {
        echo "班級:" . $row[&#39;class&#39;] . ",學生人數:" . $row[&#39;student_count&#39;] . "<br> ";
    }
} catch (PDOException $e) {
    echo "查詢數據失敗:" . $e->getMessage();
}

通過GROUP BY語句,我們可以輕鬆獲取每個班級對應的學生數量。

聚合計算示例

除了分組統計外,數據庫中常見的需求還包括求和、平均值、最大值、最小值等聚合計算。以下示例展示瞭如何使用PDO執行聚合函數:

$sql = "SELECT COUNT(*) as student_count, AVG(score) as avg_score, MAX(score) as max_score, MIN(score) as min_score FROM students";

try {
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $result = $stmt->fetch(PDO::FETCH_ASSOC);

    echo "學生總數:" . $result[&#39;student_count&#39;] . "<br> ";
    echo "平均分數:" . $result[&#39;avg_score&#39;] . "<br> ";
    echo "最高分數:" . $result[&#39;max_score&#39;] . "<br> ";
    echo "最低分數:" . $result[&#39;min_score&#39;] . "<br> ";
} catch (PDOException $e) {
    echo "查詢數據失敗:" . $e->getMessage();
}

在這個示例中,我們一次性獲取了多種統計結果,包括學生總數、平均成績、最高分和最低分。

結語

通過本文的講解,我們學習瞭如何使用PHP PDO連接數據庫,並利用SQL語句結合PDO實現數據分組與聚合計算。這些技巧在處理複雜數據統計需求時非常實用,能夠幫助開發者快速構建高效的數據處理邏輯。