<?php
// 方式一:完整模型類 (需定義 UserModel.class.php)
$m = new Model('User');
// 方式二:快速實例化 (無需模型類,直接操作 user 表)
$m = M('User'); // 等同於 new Model('User') 但跳過模型類載入
?>
// 獲取所有資料 (二維陣列)
$list = $m->select();
// 獲取單筆資料 (一維陣列)
$user = $m->find(1); // 主鍵查詢
$user = $m->where('id=1')->find(); // 條件查詢
// 獲取單一欄位值
$name = $m->where('id=2')->getField('username'); // 回傳字串
$names = $m->getField('id,username'); // 回傳鍵值陣列 [id => username]
$m = M('User');
$m->username = 'ztz2';
$m->email = 'test@example.com';
$insertId = $m->add(); // 回傳自增 ID
// 陣列批次寫入
$data = ['username' => 'ztz3', 'email' => 'test3@example.com'];
$m->add($data);
$m = M('User');
// 主鍵刪除
$m->delete(2);
// 條件刪除
$m->where('id=2')->delete();
$m->where(['status' => 0, 'id' => ['<', 10]])->delete();
// 回傳影響行數
$m = M('User');
$data = ['id' => 1, 'username' => 'ztz2', 'email' => 'new@example.com'];
$m->save($data); // 必須包含主鍵值,回傳影響行數
// 條件更新
$m->where('id=1')->save(['username' => 'updated']);
// 或
$m->where(['id' => 1])->setField('username', 'updated'); // 單欄位更新
$m->where(['id' => 1])->setInc('score', 10); // 數值遞增
$m->where(['id' => 1])->setDec('score', 5); // 數值遞減
query():多表 JOIN、子查詢、窗口函數等 ORM 難以表達的場景。getField() 單欄位查詢:下拉選單、自動完成等只需鍵值對時效能最佳。addAll():$m->addAll($dataList) 一次插入多筆,減少 SQL 往返。'DB_SQL_LOG' => true,Runtime/Logs 可查看實際執行 SQL。ThinkPHP 3.2 的查詢語法極具表達力,熟練掌握表達式查詢能解決 90% 以上的業務查詢需求。