PHPMyAdmin中外键因省略显示导致点击跳转失效问题求助
针对PHPMyAdmin超长外键截断导致查询失效的解决办法
问题回顾
我的数据库里有个超长的ukey字段,用来通过外键关联许可证表和主用户表。本来外键自带超链接,点一下就能跳转到对应表的条目,但PHPMyAdmin 4.7.7会把超长的ukey截断显示,结果点击超链接时生成的查询语句带了省略号,根本找不到对应的条目:
- 失效的查询语句(点击超链接时自动执行):
SELECT * FROM `table`.`users` WHERE `ukey` = 'gKbybyf4jWUmEA0uKSrlfxsmERJC2piJNSmYTcrmEVmaJzHQ5S...' - 补充情况:
- 许可证表的列表视图里,
ukey字段显示的是带省略号的截断值 - 跳转后的查询页面,WHERE条件里的
ukey同样带省略号,匹配不到完整条目 - 查看行详情能确认完整的
ukey确实存在数据库里 - 外键超链接的目标内容里,
ukey也是截断带省略号的状态,这明显是程序的bug
- 许可证表的列表视图里,
临时解决办法(无需修改PHPMyAdmin配置/版本)
既然你用的是托管环境没法调整PHPMyAdmin,这些方法能帮你绕开问题:
- 手动补全查询语句
点击外键跳转后,在PHPMyAdmin的查询编辑框里,把ukey值里的省略号替换成从许可证表行详情里复制的完整ukey,再执行查询就能找到对应条目了。 - 直接写完整SQL查询
切换到PHPMyAdmin的「SQL」标签页,手动编写并执行包含完整ukey的查询:SELECT * FROM `table`.`users` WHERE `ukey` = '你的完整超长ukey值' - 通过行详情间接跳转
在许可证表中,点击对应行的「详情」或「编辑」按钮(德语界面的对应选项),这里会显示完整的ukey;复制这个值后,再去用户表搜索,或者直接用它写查询语句。
提交Bug报告的步骤(若临时办法满足不了需求)
如果希望官方修复这个问题,可以按以下步骤提交Bug:
- 前往PHPMyAdmin的官方Bug追踪平台(GitHub仓库的Issues板块)
- 新建Issue时,务必包含这些关键信息:
- 明确标注PHPMyAdmin版本:4.7.7
- 清晰描述问题:超长字符的外键字段在列表视图被截断,导致点击外键超链接生成的查询带省略号,无法匹配数据库里实际存在的完整条目
- 重现步骤:
- 创建两个关联表,外键字段
ukey设为超长字符串(长度超过PHPMyAdmin列表视图的显示阈值) - 在许可证表的列表视图里点击外键超链接
- 观察生成的查询语句带省略号,执行后找不到对应条目
- 创建两个关联表,外键字段
- 补充证据说明:通过行详情能看到完整
ukey存在,排除数据本身的问题
内容的提问来源于stack exchange,提问作者Felix Gaebler
相关产品推荐
相关产品推荐

