類核心功能
- 基於 mysqli 擴展,支持預處理防注入。
- 鏈式調用風格:
$db->Table('user')->Where('id>5')->Select()。
- 內置分頁、記錄總數、導航 HTML 生成。
- 封裝增刪改查、表單數據過濾、IP 獲取、跳轉提示等常用工具方法。
關鍵方法速查
| 方法 | 說明 |
Parameter($host,$user,$pass,$db,$charset,$prefix) | 初始化連接參數 |
Table($name) | 指定操作表(自動加前綴) |
Field($fields) | 指定查詢字段,逗號分隔或 * |
Where($condition) | WHERE 子句,不含 WHERE 關鍵字 |
Order($order) | ORDER BY 子句 |
Page($pageSize) | 啟用分頁,自動處理 $_GET['page'] |
Select($assoc=true,$limit=1) | 執行查詢,返回二維數組或單條記錄 |
Sel() | 簡易查詢,返回關聯數組 |
Into() | 插入 $this->FormArray 數據 |
Edit($array) | 更新記錄,支持算術表達式 |
Del() | 刪除符合 Where 條件的記錄 |
PageNav($numNav) | 生成分頁導航 HTML |
FormIs($key) | 判斷表單是否提交 ($_POST[$key]==1) |
_post/$_get($key,$default) | 安全獲取並過濾標簽 |
Msg($text) | JS 警告並跳回來源頁 |
Times() | 返回格式化當前時間(含轉義) |
GetIP() | 獲取真實客戶端 IP |
Close() | 關閉數據庫連接 |
使用示例
<?php
require 'Mysql.class.php';
$Conn = new Mysql;
$Conn->Parameter('localhost', 'root', '123456', 'mydb', 'UTF8', 'pre_');
// 查詢所有用戶
$users = $Conn->Table('user')->Select();
// 分頁查詢文章,每頁 20 條
$articles = $Conn->Table('article')
->Field('id,title,create_time')
->Where("status=1")
->Order('id DESC')
->Page(20)
->Select();
// 顯示分頁導航
echo $Conn->PageNav(true);
// 新增記錄
$Conn->Table('log')
->_post('title')
->_post('content')
->Into();
// 修改記錄
$Conn->Table('user')
->Where("id=5")
->Edit(['login_count' => '`login_count`+1']);
// 刪除記錄
$Conn->Table('temp')
->Where("created < DATE_SUB(NOW(), INTERVAL 7 DAY)")
->Del();
$Conn->Close();
?>
注意事項與現代化建議
- 類中直接拼接 SQL 字符串存在注入風險,建議重構為 預處理語句 (Prepared Statements)。
- 分頁邏輯耦合
$_GET,單元測試不便,可改為接收參數對象。
- 新項目推薦使用成熟 ORM(如 Eloquent, Doctrine)或查詢構建器(如 Laravel Database, Medoo)。
mysql_* 相關代碼已棄用,本類已使用 mysqli,屬正確方向。