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

ThinkPHP 區間查詢、統計查詢與原生 SQL 查詢實戰

     編輯:PHP 綜合知識

一、區間查詢

<?php
// AND 關係 (預設)
$data['id'] = [['gt', 4], ['lt', 10]];
// SQL: WHERE (`id` > 4) AND (`id` < 10)

// OR 關係
$data['id'] = [['gt', 4], ['lt', 10], 'or'];
// SQL: WHERE (`id` > 4) OR (`id` < 10)

// 複雜多條件 OR
$data['name'] = [
    ['like', '%2%'],
    ['like', '%5%'],
    'gege',  // 此處原文似為自定義字串,實際應為條件
    'or'
];

二、統計查詢

方法說明範例
count()記錄總數$m->count()
max($field)最大值$m->max('score')
min($field)最小值$m->min('score')
avg($field)平均值$m->avg('score')
sum($field)總和$m->sum('amount')
<?php
$m = M('User');

// 字串條件
$count = $m->where("username='gege'")->count();

// 陣列條件 (推薦,自動防注入)
$data['username'] = 'gege';
$count = $m->where($data)->count();

三、原生 SQL 查詢

1. query():查詢操作 (SELECT)

<?php
$m = M(); // 空模型
$result = $m->query("SELECT * FROM tp_user WHERE id > 50");
var_dump($result); // 成功回傳結果集陣列,失敗回傳 false

2. execute():寫入操作 (INSERT/UPDATE/DELETE)

<?php
$m = M();
$result = $m->execute("INSERT INTO tp_user (username) VALUES ('ztz3')");
var_dump($result); // 成功回傳影響行數,失敗回傳 false

選擇建議

  • 標準 CRUD:優先使用鏈式操作 where()->select(),可讀性高、自動防注入
  • 複雜報表/跨表關聯:使用 query() 手寫 SQL,發揮資料庫最大效能
  • 批次更新/複雜事務:使用 execute() 或 startTrans()/commit()
  • 永遠不要拼接 SQL 字串,防止 SQL 注入
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved