首頁 後端開發 php教程 thinkPHP框架中如何執行原生SQL語句

thinkPHP框架中如何執行原生SQL語句

Jun 07, 2018 pm 05:38 PM
sql語句 thinkphp框架 原生 執行

這篇文章主要介紹了thinkPHP框架中執行原生SQL語句的方法,結合實例形式分析了thinkPHP中執行原生SQL語句的相關操作技巧,並簡單分析了query與execute方法的使用區別,需要的朋友可以參考下

本文實例講述了thinkPHP框架中執行原生SQL語句的方法。分享給大家供大家參考,具體如下:

怎麼在thinkphp裡面執行原生的sql語句?

$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);
登入後複製

只是需要new一個空的模型繼承Model中的方法。

注意query是查功能,execute是增刪改功能

查詢與讀取屬性值的實例:

$sql = "select * from goods";
$Model = M();
$result = $Model->query($sql);
foreach ($result as $k=>$val){
$goods_id = $val["goods_id"];
}
登入後複製

tP的模型可以支援原生SQL操作,提供了query和execute兩個方法,為什麼原生SQL還要區分兩個方法呢,原因有兩個:

1、傳回型別不同

query用來查詢傳回的是資料集,跟select或findall一樣,所以可以直接在範本裡面使用volist標籤輸出query的查詢結果

execute用來寫入操作傳回的是狀態或影響的記錄數

2、讀寫統計需要

為了方便統計目前的資料讀寫次數,把資料庫的讀取和寫入操作分開(對應的就是query和execute)

使用原生SQL很簡單,我們甚至不需要實例化任何的模型,例如:

$Model = new Model(); // 实例化一个空模型
登入後複製

下面的方法是等效的

$Model = D();// 或者 $Model = M();
// 下面执行原生SQL操作
$Model->query('select * from think_user where status=1');
$Model->execute('update think_user set status=1 where id=1');
登入後複製

如果你實例化了某個模型,仍然可以執行原生SQL操作,不​​受影響,例如:

$User = D('User');
$User->query('select * from think_user where status=1');
$User->execute('update think_user set status=1 where id=1');
登入後複製

在這種情況下面,我們可以簡化SQL語句的寫法,例如:

$User->query('select * from __TABLE__ where status=1');
$User->execute('update __TABLE__ set status=1 where id=1');
登入後複製

系統會自動把__TABLE__替換成目前模型對應的資料表名稱,實際的資料表由模型決定。

通常來說,我們都是使用原生SQL運算實作一些ORM和CURD比較難實現的操作,另外,如果SQL不複雜的話原生SQL的效率和連貫操作的效率差異是微乎其微的,TP本身的ORM實作也是相當有效率的。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關建議:

ThinkPHP5框架簡單的實作批次查詢

ThinkPHP3.2框架使用addAll()批次插入資料的方法

thinkPHP5實作資料庫新增內容的方法

##

以上是thinkPHP框架中如何執行原生SQL語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

可以在 Windows 7 上安裝 mysql 嗎 可以在 Windows 7 上安裝 mysql 嗎 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安裝 MySQL,雖然微軟已停止支持 Windows 7,但 MySQL 仍兼容它。不過,安裝過程中需要注意以下幾點:下載適用於 Windows 的 MySQL 安裝程序。選擇合適的 MySQL 版本(社區版或企業版)。安裝過程中選擇適當的安裝目錄和字符集。設置 root 用戶密碼,並妥善保管。連接數據庫進行測試。注意 Windows 7 上的兼容性問題和安全性問題,建議升級到受支持的操作系統。

sql server怎麼用sql語句創建表 sql server怎麼用sql語句創建表 Apr 09, 2025 pm 03:48 PM

在 SQL Server 中使用 SQL 語句創建表的方法:打開 SQL Server Management Studio 並連接到數據庫服務器。選擇要創建表的數據庫。輸入 CREATE TABLE 語句,指定表名、列名、數據類型和約束。單擊執行按鈕創建表。

SQL注入怎麼判斷 SQL注入怎麼判斷 Apr 09, 2025 pm 04:18 PM

判斷 SQL 注入的方法包括:檢測可疑輸入、查看原始 SQL 語句、使用檢測工具、查看數據庫日誌和進行滲透測試。檢測到注入後,採取措施修補漏洞、驗證補丁、定期監控、提高開發人員意識。

mysql優化鎖定表嗎 mysql優化鎖定表嗎 Apr 08, 2025 pm 01:51 PM

MySQL使用共享鎖和排他鎖管理並發,提供表鎖、行鎖和頁鎖三種鎖類型。行鎖可提高並發性,使用FOR UPDATE語句可給行加排他鎖。悲觀鎖假設衝突,樂觀鎖通過版本號判斷數據修改。常見鎖表問題表現為查詢緩慢,使用SHOW PROCESSLIST命令查看鎖持有的查詢。優化措施包括選擇合適索引、減少事務範圍、批量操作和優化SQL語句。

怎樣檢查sql語句 怎樣檢查sql語句 Apr 09, 2025 pm 04:36 PM

檢查 SQL 語句的方法有:語法檢查:使用 SQL 編輯器或 IDE。邏輯檢查:驗證表名、列名、條件和數據類型。性能檢查:使用 EXPLAIN 或 ANALYZE,檢查索引並優化查詢。其他檢查:檢查變量、權限和測試查詢。

sql語句三個表連接怎麼寫教程 sql語句三個表連接怎麼寫教程 Apr 09, 2025 pm 02:03 PM

本文介紹了一種使用 SQL 語句連接三個表的詳細教程,指導讀者逐步了解如何有效地關聯不同表中的數據。通過示例和詳細的語法講解,本文將幫助您掌握 SQL 中表的連接技術,從而能夠高效地從數據庫中檢索關聯信息。

SQL刪除行後如何恢復數據 SQL刪除行後如何恢復數據 Apr 09, 2025 pm 12:21 PM

直接從數據庫中恢復被刪除的行通常是不可能的,除非有備份或事務回滾機制。關鍵點:事務回滾:在事務未提交前執行ROLLBACK可恢復數據。備份:定期備份數據庫可用於快速恢復數據。數據庫快照:可創建數據庫只讀副本,在數據誤刪後恢復數據。慎用DELETE語句:仔細檢查條件,避免誤刪數據。使用WHERE子句:明確指定要刪除的數據。使用測試環境:在執行DELETE操作前進行測試。

mysql 是否要付費 mysql 是否要付費 Apr 08, 2025 pm 05:36 PM

MySQL 有免費的社區版和收費的企業版。社區版可免費使用和修改,但支持有限,適合穩定性要求不高、技術能力強的應用。企業版提供全面商業支持,適合需要穩定可靠、高性能數據庫且願意為支持買單的應用。選擇版本時考慮的因素包括應用關鍵性、預算和技術技能。沒有完美的選項,只有最合適的方案,需根據具體情況謹慎選擇。

See all articles