Php 第1条中的高级搜索
我在DOCTRINE1中使用LIKE查询在数据库中搜索关键字。 下面是一个例子:我在DB“地狱中的开发者”中有一个字符串 问题是如果我搜索“开发者”,它会返回结果,但如果我搜索“开发者地狱”,它不会返回任何结果。因为跳过了字符串中的中间到中间的单词Php 第1条中的高级搜索,php,sql,doctrine,zend-lucene,Php,Sql,Doctrine,Zend Lucene,我在DOCTRINE1中使用LIKE查询在数据库中搜索关键字。 下面是一个例子:我在DB“地狱中的开发者”中有一个字符串 问题是如果我搜索“开发者”,它会返回结果,但如果我搜索“开发者地狱”,它不会返回任何结果。因为跳过了字符串中的中间到中间的单词 条令是否提供了任何通配符/高级选项/条件来处理此类情况。首先,您在构建查询时做得不对 您为查询提供的参数,因此您不必自己使用mysql\u real\u escape\u string $str = "Developer in the hell";
条令是否提供了任何通配符/高级选项/条件来处理此类情况。首先,您在构建查询时做得不对 您为查询提供的参数,因此您不必自己使用
mysql\u real\u escape\u string
$str = "Developer in the hell";
$srchKey = "%" . $str . "%";
$q = Doctrine_Query::create()
->from("Movie as m")
->where('m.name LIKE ? or m.keywords LIKE ?', array($srchKey, $srchKey))
->fetchArray();
关于你的搜索引擎,你应该看看。它将比像这样的简单查询功能更强大。但我不知道它是否能像你想的那样处理多词搜索
或者你可以试试Lucene。A作为Jobeet教程的一部分。@jok感谢您的更正。我尝试过可搜索行为,但没有成功,现在看来我必须使用Zend_Lucene。条令自动转义参数,所以您不必担心。。。!!此外,您不应该使用
mysql\u***
函数。。。改用mysqli\u***
,其中我表示改进。有关更多信息,请参阅。你现在需要的是
$str = "Developer in the hell";
$srchKey = "%" . $str . "%";
$q = Doctrine_Query::create()
->from("Movie as m")
->where('m.name LIKE ? or m.keywords LIKE ?', array($srchKey, $srchKey))
->fetchArray();