You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL列名含&导致PHP URL传参数据不显示问题求助

解决方案

问题根源

你遇到的问题是URL编码与HTML实体编码的顺序错误:直接输出原始字符串到HTML的href属性时,浏览器会自动把&转成HTML实体&,导致URL中的参数分隔符被错误解析——服务器会把&识别成新的参数开头,最终Course参数只拿到a ,而非完整的a & B。

修复代码

把你的链接代码改成如下形式,先做URL编码,再对整个URL做HTML实体转义:

<a href="<?php echo htmlspecialchars('View-Diploma.php?Course=' . urlencode($cou_row['CourseName'])); ?>">查看证书</a>

为什么这样有效

  1. urlencode($cou_row['CourseName']):将字符串中的&转成URL编码格式%26,确保它不会被当作URL的参数分隔符。
  2. htmlspecialchars(...):对拼接好的完整URL做HTML实体转义,防止HTML注入风险,同时确保浏览器正确解析href属性中的特殊字符,不会把%26再转成&amp;。

为什么之前的尝试没用

  • 单独用urlencode但没配合htmlspecialchars:直接输出到HTML属性时,浏览器仍会把URL中的特殊字符转成HTML实体,导致%26被错误处理。
  • 修改MySQL排序规则:问题出在前端URL的编码逻辑,和数据库存储的字符集/排序规则无关。

内容的提问来源于stack exchange,提问作者Vikrant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:30:54