php - LIKE 表达式中的 MySQL 连字符

标签 php mysql escaping

我在使用旧版 PHP 框架时遇到了一些我无法追踪的奇怪行为。

我正在运行一个看起来像这样的查询

select * from table where column like '%word-anotherword%'

,我想从表中返回记录,其中列包含文本“word-anotherword”。 (列是一个长文本字段)。

当我在 phpMyAdmin 中运行这个查询时,我得到了预期的结果。但是当我从我们的框架内部运行它时,我没有得到任何结果。我在一个单独的 .php 文件中运行它,使用 mysql_linkmysql_query 来运行查询,这也符合预期。

当我在将查询传递给 mysql_query 之前直接在框架中 echo 时,它的格式与我预期的一样。 IE。我们的框架并没有以某种意想不到的方式逃避它。

我假设我们的框架在某处覆盖了某些 PHP 设置以导致这种行为差异,但我没有运气去谷歌搜索它可能是什么。我找到了 this article ,这似乎是一个好的开始,但似乎也不太符合我所看到的,因为我在同一个 MySQL 设置上得到不同的行为。

任何正确方向的指示将不胜感激!

最佳答案

作为调试提示:

当您echo 您的查询时,您可能想确保您确实看到了数据 - 例如如果您正在 echo-ing 到网页上,请确保您正在将 htmlspecialchars() 应用于该字符串。否则您可能不会发现一些变化。

关于php - LIKE 表达式中的 MySQL 连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432533/

相关文章:

php - 使用比较时mysql查询返回问题

html - Rails 4,Flash 消息中的链接未解析为 HTML

string - 转义postgresql中的所有单引号

linux - bash 脚本中的 curl 请求在 URL 中需要美元符号

php - 如何在 WordPress 中使用 mysqli

php - 正则表达式php从不同组中的字符串中分离出一个确切的单词

php - 将用户的学校时间表打印为表格的算法

php - 如何从数据库中获取用户名? MYSQL新手

php - 如何安装php mysql apache和phpmyadmin

php - Zend Framework 随机丢失 session ?