整理前幾篇教程的查詢相關程式碼,包含基本查詢、多條件組合查詢、參數傳遞等核心功能,供學習者下載參考。
$_POST 接收SET NAMES GB2312 解決中文顯示mysql_fetch_object 存取欄位filter_input 或預處理mysql_free_result、mysql_close「原始碼僅作為參考範本,請務必理解每行邏輯,並依專案需求修改:資料表結構、欄位名稱、驗證規則、安全機制。」
mysql_* 改寫為 PDO<?php
// 查詢服務類別範例
class EmployeeRepository {
private $pdo;
public function __construct(PDO $pdo) { $this->pdo = $pdo; }
public function search(array $criteria, int $page = 1, int $perPage = 20) {
$where = [];
$params = [];
if (!empty($criteria['depart'])) {
$where[] = "depart = ?";
$params[] = $criteria['depart'];
}
if (!empty($criteria['ename'])) {
$where[] = "ename = ?";
$params[] = $criteria['ename'];
}
$sql = "SELECT * FROM info";
if ($where) $sql .= " WHERE " . implode(" AND ", $where);
$sql .= " ORDER BY id DESC LIMIT ?, ?";
$params[] = ($page - 1) * $perPage;
$params[] = $perPage;
$stmt = $this->pdo->prepare($sql);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
?>
透過重構舊代碼,學習現代架構模式:Repository、依賴注入、參數化查詢、分頁抽象。