万能SQL标签
万能SQL标签
万能SQL标签{soeay:sql}用于在模板中执行自定义SQL查询,功能强大但需谨慎使用。
安全提示:此标签存在安全风险,系统已自动禁用INSERT/UPDATE/DELETE/DROP等写操作。请勿在公开模板中暴露敏感查询。
基本语法
{soeay:sql sql="SELECT * FROM soeay_content WHERE scode=2 AND status=1 LIMIT 10"}
<a href="[soeay:link]">[soeay:title]</a>
{/soeay:sql}属性说明
- sql:SQL查询语句,必填(仅支持SELECT查询)
- num:最大返回条数,默认 100
可用变量
SQL查询结果中的所有字段均可通过[soeay:字段名]访问。
安全限制
- 仅支持SELECT查询,自动过滤写操作
- 自动检测并拒绝 INSERT/UPDATE/DELETE/DROP/ALTER/CREATE/TRUNCATE 等危险语句
- 单查询最大返回1000条记录
使用场景
万能 SQL 标签适用于以下场景:
- 需要跨表查询
{soeay:list}无法满足的数据。 - 需要读取扩展表或插件自定义表的内容。
- 需要实现临时的、简单的统计或排行展示。
变量说明
| 变量 | 说明 |
|---|---|
| [soeay:字段名] | SQL 查询结果中的任意字段名 |
| [soeay:i] / [soeay:num] | 循环序号,从1开始 |
示例:读取指定栏目最新内容
{soeay:sql sql="SELECT c.id, c.title, c.ico, c.date, s.filename as sort_filename FROM soeay_content c LEFT JOIN soeay_content_sort s ON c.scode=s.scode WHERE c.status=1 AND c.acode='cn' ORDER BY c.date DESC LIMIT 5"}
<div>
<img src="[soeay:ico]" alt="[soeay:title]">
<a href="/[soeay:sort_filename]/[soeay:id].html">[soeay:title]</a>
</div>
{/soeay:sql}注意事项
- 仅 SELECT:系统自动拦截任何写入语句,即使拼接到 sql 参数中也不会执行。
- 无 link 变量:与
{soeay:list}不同,SQL 查询结果不会自动生成[soeay:link],如需链接请手动拼接 URL。 - 字段名需与查询一致:模板中使用的
[soeay:xxx]必须与 SELECT 语句中的字段名或别名一致。 - 性能影响:复杂的 SQL 查询可能影响页面性能,建议避免在首页等高流量页面使用复杂查询。
- 不要暴露后台表结构:切勿在公开模板中写出敏感表名或字段名,防止被恶意利用。
