Symfony2 - SQL查询返回的结果集不同于DB

时间:2016-06-17 09:34:59

标签: php mysql symfony

我有一个奇怪的问题。我正在测试与此查询相关的结果:

SELECT 
    id,
    title,
    MATCH (title) AGAINST (:searchNormal ) AS relevance
FROM
    movie
WHERE
    MATCH (title) AGAINST (:searchModified IN BOOLEAN MODE)
HAVING relevance > 0.2
ORDER BY relevance DESC
LIMIT 20

不用担心用户输入消毒,

:searchNormal只是

trim($searchQuery)

:searchModified

'+' . str_replace(' ', '+', trim($searchQuery)

我这样用:

$entityManager = $this->getDoctrine()->getManager();
$statementData = array(
    'searchNormal' => trim($searchQuery),
    'searchModified' => '+' . str_replace(' ', '+', trim($searchQuery))
    );

$statement = $entityManager->getConnection()->prepare($SQLquery);
$statement->execute($statementData);

本地计算机上的结果:

当我在本地计算机上的数据库引擎上直接运行SQL查询时,它运行良好。例如,短语 green kill kill green 都会返回一个结果,“Long Green Kill”。运行代码时会发生同样的情况 devprod Symfony envs。

生产结果:

当我直接在DB上在生产机器上运行它时,它也可以工作。 但是当我运行代码时,它会返回凌乱的结果。 “长绿杀戮”仅在短语“绿色杀戮”中排在最前面,下面有数百条记录,具体取决于搜索查询中的第一个单词,标题中包含“绿色”或“终止”。 如果它在数据库和PHP上以相同(错误或正确)的方式在一台机器上工作,我不会感到惊讶,但这很奇怪。你有什么想法,可能发生了什么?

0 个答案:

没有答案