如何解决MySQL CONCAT生成HTML链接时尖括号转义问题
解决MySQL CONCAT生成超链接显示为字面内容的问题
SQL语句修正:
你当前的CONCAT语句对<和>做了多余转义(写成\<和\>),导致MySQL输出的是转义后的字符串,最终被页面再次转义成&lt;和&gt;。直接修改SQL,使用原生的<和>即可:CONCAT('<a href="http://example.com:4200/event/view/', e.event_id, '">', e.event_id, '</a>') AS 'Event-ID',应用层转义处理:
如果修改SQL后仍显示字面内容,说明你的应用程序(或模板引擎)在渲染时自动转义了HTML特殊字符。需要针对Event-ID字段关闭转义:- PHP环境:避免用
htmlspecialchars()处理该字段,或用htmlspecialchars_decode()还原:echo htmlspecialchars_decode($row['Event-ID']); - 模板引擎示例:
- Laravel Blade:用
{!! $row['Event-ID'] !!}代替默认的{{ $row['Event-ID'] }} - Twig模板:使用
{{ row['Event-ID']|raw }} - 其他引擎请查找“原生输出”或“禁用HTML转义”的对应语法
- Laravel Blade:用
- PHP环境:避免用
内容的提问来源于stack exchange,提问作者RonE
相关产品推荐
相关产品推荐

