资讯专栏INFORMATION COLUMN

yii2提示错误1062 Duplicate entry 'xxx&�

cooxer / 2109人阅读

摘要:昨天在后台添加话题数据时,报了下面错误,看错误提示大概知道是的字段设置了唯一索引导致数据无法插入导致,但想不到为什么会直接报错了。后来在的里发现这段验证代码,才明白是因为它导致的。由于对字段验证还使用了,会把输入的包含特殊字符进行转义。

昨天在后台添加话题数据时,报了下面错误,看错误提示大概知道是mysql的name字段设置了唯一索引导致数据无法插入导致,但想不到为什么会直接报错了。因为插入别的值都没有遇到这样情况。

后来在model的rules里发现

[["name"], "filter", "filter" => "yiihelpersHtml::encode"]

这段验证代码,才明白是因为它导致的。由于对name字段验证还使用了filter,Html::encode会把输入的包含html特殊字符进行转义。当时输入的是"CHARLES&KEITH",经过Html::encode转义成了"CHARLES"&"amp;KEITH",然后存入库中的字段值就是"CHARLES"&"amp;KEITH"了。但是上面还有个name字段的验证,

[["name"], "unique"]

它是使用用户输入的"CHARLES&KEITH"值去与数据库中的所有name字段只进行比较的,这样比较的话,就自然通过了(在前端验证这关)。但接下来filter又把用户输入的值进行Html::encode转义成了"CHARLES"&"amp;KEITH",然后向数据库中插入时,由于name字段设置了唯一索引而且已存在这个值,然后yii2就报了这个错误(如果有理解不正确的地方请大家指正)。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23323.html

相关文章

  • 怎么使用Python制作AI聊天软件?具体实例代码如下

      小编写这篇文章的一个主要目的,主要是给大家去做一个详细解答,解答的内容是基于Python的,基于Python去制作AI聊天软件,实现远程聊天。那么,现在有没有现成的代码呢?下面就给大家详细解答下。  效果图  先看一下效果图  就当是女友无聊的时候自己抽不出时间的小分身吧!  需要用到的库  tkinter、time、urllib、requests  tkinter负责窗体、time显示时间、...

    89542767 评论0 收藏0
  • 基于Python编写一个点名器的示例代码

      今天,小编给大家去做一个详细的介绍,介绍的内容是涉及到Python的,主要还是利用这门语言去进行编程,我们可以利用这门语言,去编写一个示例器的代码,具体的代码,下文给大家贴了出来。  前言  想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点名器。今日无聊便敲了敲小时候老师斥巨资买的点名器。  本人姓白,就取名小白点名器啦,嘿嘿  代码包含:添加姓名、查看花名册、使用指南、随...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<