DedeCMS (織夢) 內建 {dede:sql} 標簽,讓模板直接執行 SQL 查詢並循環輸出,極大擴展了模板動態能力。本文結合官方文檔與社區實例,整理常用 SQL 應用模式。
{dede:sql sql="完整SQL查詢語句"}
底層模板內容:[field:欄位名/]
{/dede:sql}
sql 屬性:完整 SELECT 語句(僅支援 SELECT)。[field:欄位名/] 引用查詢結果欄位,支援所有 SQL 返回欄位。{dede:sql sql="SELECT * FROM dede_archives WHERE mid=1"}
[field:title/]
{/dede:sql}
mid 為會員 ID,對應 dede_archives 表字段。
| 類型 | 典型語句 | 執行入口 |
|---|---|---|
| 功能型 (DML/DDL) | INSERT, UPDATE, DELETE, ALTER TABLE | 後台 → 系統 → SQL 命令運行工具 |
| 數據調用型 (SELECT) | SELECT ... | 模板中 {dede:sql} 標簽 |
INSERT INTO `dede_arcatt` (sortid, att, attname) VALUES (9, 'd', '評論');
ALTER TABLE `dede_archives` MODIFY `flag` SET ('c','h','p','f','s','j','a','b','d') DEFAULT NULL;
UPDATE dede_archives SET writer='預設作者' WHERE writer='';
UPDATE dede_archives SET source='預設來源' WHERE source='';
sql 屬性直接拼接,嚴禁引入用戶可控參數,防止模板注入。dede_archives + dede_addonarticle),但需注意欄位名衝突,建議使用別名。LIMIT (MySQL) / TOP (SQL Server) 控制行數。深入理解 DedeCMS 數據庫結構(dede_archives, dede_arctype, dede_addon* 等)是編寫高效 SQL 的前提,請參考官方「數據庫說明」文檔。