我正在使用遗留的PHP框架,并且遇到了一些我无法追踪的奇怪行为。
我正在运行看起来像这样的查询
select * from table where column like '%word-anotherword%'
,我想从表中返回记录,其中列包含文本“word-anotherword”。 (列是一个longtext字段)。
当我在phpMyAdmin中运行此查询时,我得到了预期的结果。但是当我从框架内部运行它时,我得不到任何结果。我在一个单独的.php文件中运行它,使用mysql_link
,mysql_query
来运行查询,并且行为也符合预期。
当我echo
在框架中传递给mysql_query
之前直接查询它时,它的格式与我期望的相同。 I.E.我们的框架并没有以某种意想不到的方式逃避它。
我假设我们的框架覆盖某些PHP设置,导致行为上的这种差异,但我没有运气谷歌搜索它可能是什么。我找到了this article,这似乎是一个很好的开始,但似乎并不适合我所看到的,因为我在相同的MySQL设置上得到了不同的行为。
任何指向正确方向的人都将不胜感激!
答案 0 :(得分:2)
作为调试抬头:
当您echo
查询时,您可能需要确保实际查看数据 - 例如如果您echo
进入网页,请确保将htmlspecialchars()
应用于字符串。否则你可能不会发现一些变化。
答案 1 :(得分:1)
LIKE不是全文搜索,这就是问题标题错误的原因,可能是您发现的文章与您的问题无关。
关于您的问题,请打开my.cnf并启用查询日志:
[mysqld]
#Set General Log
log = "C:/all_queries.log"
现在运行您的查询并查看日志。