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

ThinkPHP 3.2 CURD 操作與查詢語法完整參考手冊

     編輯:PHP 相關知識

    模型實例化兩種方式

    <?php
    // 方式一:完整模型類 (需定義 UserModel.class.php)
    $m = new Model('User'); 
    
    // 方式二:快速實例化 (無需模型類,直接操作 user 表)
    $m = M('User'); // 等同於 new Model('User') 但跳過模型類載入
    ?>

    核心 CURD 操作

    Read (查詢)

    // 獲取所有資料 (二維陣列)
    $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]

    Create (新增)

    $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);

    Delete (刪除)

    $m = M('User');
    
    // 主鍵刪除
    $m->delete(2); 
    
    // 條件刪除
    $m->where('id=2')->delete(); 
    $m->where(['status' => 0, 'id' => ['<', 10]])->delete();
    
    // 回傳影響行數

    Update (更新)

    $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);  // 數值遞減

    查詢語法大全

    1. 普通查詢 (字串/陣列)

    2. 表達式查詢 (核心優勢)

    3. 複合條件查詢 (區間查詢進階)

    4. 統計查詢

    5. 原生 SQL 查詢 (特殊需求)

    實務開發建議

    1. 優先使用陣列/表達式查詢:自動參數綁定,防止 SQL 注入,可讀性高。
    2. 複雜關聯查詢用 query():多表 JOIN、子查詢、窗口函數等 ORM 難以表達的場景。
    3. 善用 getField() 單欄位查詢:下拉選單、自動完成等只需鍵值對時效能最佳。
    4. 批次操作使用 addAll():$m->addAll($dataList) 一次插入多筆,減少 SQL 往返。
    5. 開啟 SQL 日誌除錯:配置 'DB_SQL_LOG' => true,Runtime/Logs 可查看實際執行 SQL。

    ThinkPHP 3.2 的查詢語法極具表達力,熟練掌握表達式查詢能解決 90% 以上的業務查詢需求。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved