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

PHP 讀取 MySQL 資料至二維陣列並依指定欄數輸出表格

     編輯:PHP 綜合知識

基本範例 (PDO 現代寫法)

 PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES => false,
    ]);
    
    $stmt = $pdo->query('SELECT id, name, url FROM mclass');
    $rows = $stmt->fetchAll(); // 直接取得二維陣列
    
    $cols = 3; // 每列欄數
    echo '';
    for ($i = 0; $i < count($rows); $i += $cols) {
        echo '';
        for ($j = 0; $j < $cols && isset($rows[$i+$j]); $j++) {
            $row = $rows[$i+$j];
            echo '';
        }
        echo '';
    }
    echo '
' . htmlspecialchars($row['name']) . '
'; } catch (PDOException $e) { error_log('DB Error: ' . $e->getMessage()); echo '資料庫連線失敗,請稍後再試'; }

進階:分頁 + 表格輸出

query('SELECT COUNT(*) FROM mclass')->fetchColumn();
$totalPages = ceil($total / $perPage);

// 當頁資料
$offset = ($page - 1) * $perPage;
$stmt = $pdo->prepare('SELECT id, name, url FROM mclass LIMIT :offset, :limit');
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->bindValue(':limit', $perPage, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll();

// 輸出表格
echo '';
foreach (array_chunk($rows, $cols) as $chunk) {
    echo '';
    foreach ($chunk as $row) {
        echo '';
    }
    echo '';
}
echo '
' . htmlspecialchars($row['name']) . '
'; // 分頁導航 echo '';

關鍵差異:舊 mysql_* vs PDO

安全性提醒

  • 輸出 HTML 必經 htmlspecialchars()
  • URL 參數經 urlencode()
  • 資料庫帳號最小權限、非 root
  • 錯誤訊息勿顯示給使用者
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目mysql_* (已移除)PDO (推薦)
PHP 版本≤ 5.65.1+
SQL 注入防護手動 escape預備語句
資料庫抽象無支援 12+ 驅動
錯誤處理回傳 false例外模式
fetchAll 直接得陣列需迴圈手動建一行搞定