资讯专栏INFORMATION COLUMN

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

cooxer / 1937人阅读

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

昨天在后台添加话题数据时,报了下面错误,看错误提示大概知道是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

相关文章

  • Mysql常见错误码讲解

    摘要:当这些错误发生时,数据就无法访问了,并且一直永久的无法访问。错误可能意味着表定义中字段的数量和大小超过了一些限制。添加外键错误,检查外键关联的两个字段数据类型是否一致。 Error code 1064: Syntax error 假设有一个sql语句 select LastName, FirstName,from Person 执行的时候会包错误 Error Code: 1064. ...

    BearyChat 评论0 收藏0
  • MySQL 存储过程中的错误处理

    摘要:的错误码和的具体信息可参见官方手册今天我们要讲的是如果在存储过程中遇到错误应该如何处理。需要注意的是,要在存储过程声明一个命名条件的语句,则该语句必须出现在错误处理器或者游标声明的前面。 本文主要基于一篇 MySQL Tutorial的文章,同时补充了自己的几个实践。 概述 我们在执行普通的 MySQL SQL 语句的时候,都会在某些情况下遇到错误。比如,我们向一张表中插入一条已经存在...

    Rocko 评论0 收藏0
  • 怎么使用Python制作AI聊天软件?具体实例代码如下

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

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

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

    89542767 评论0 收藏0
  • TiDB 源码阅读系列文章(十六)INSERT 语句详解

    摘要:在之前的一篇文章源码阅读系列文章四语句概览中,我们已经介绍了语句的大体流程。语句自身都可以连接一个语句作为待插入数据的输入,因此,其又受到了来自的影响关于的部分详见相关的源码阅读文章七基于规则的优化和八基于代价的优化。 在之前的一篇文章 《TiDB 源码阅读系列文章(四)INSERT 语句概览》 中,我们已经介绍了 INSERT 语句的大体流程。为什么需要为 INSERT 单独再写一篇...

    elliott_hu 评论0 收藏0

发表评论

0条评论

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