【问题标题】:HTML entities in my database. Search with zero results我的数据库中的 HTML 实体。搜索结果为零
【发布时间】:2015-12-19 02:59:36
【问题描述】:

我的 laravel 应用程序有问题,我不知道是什么问题...

我在我的数据库中写下西班牙语单词,例如:"Camión",其中包含重音符号,但是当我转到 phpmyadmin 时,我看到了 "Camión"

因此,当我使用下一个 sql 查询时:

select * from table where name like '%Camión%'

我得到零行。如果我使用相同:

select * from table where name like '%Camion%'

我使用utf8_spanish_ci整理。

有人可以帮我吗?

我不知道为什么要在我的数据库中存储 html 实体。我怎么知道?我觉得我没什么特别的……

【问题讨论】:

标签: php mysql laravel non-ascii-characters


【解决方案1】:

不要在数据库中存储 html 实体。这些实体仅用于 HTML,以防止跨站点脚本攻击等。通过 PHP 输出到 HTML 页面时使用 htmlentites。

话虽如此,请确保在使用用户输入的数据时正确参数化数据库查询,以防止 SQL 注入攻击。

【讨论】:

  • 我不知道为什么要在我的数据库中存储 html 实体。我怎么知道?我觉得我没什么特别的……
  • 我使用 e() 方法...谢谢我不知道 :) 你知道 laravel 中的任何过滤器 xss 吗?
  • 请在您的回答中添加您的评论
  • e() 基本上是 laravel 中 htmlentities() 的快捷方式。当您将数据输出到 html 页面时使用它,您从数据库中检索到该数据之后。向数据库中插入数据时不要使用 e()。
猜你喜欢
  • 2017-11-05
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
相关资源
最近更新 更多