0
我试图用Kohana的正则表达式()数据库方法来搜索一个单词。我最初使用like()方法,但结果不是我想要的。基本上我需要做的是搜索某个词的短语。我以前使用过这样的基本正则表达式,但是我一定在做错了什么。我试过下面没有任何成功:Kohana 2.3.4 ORM和正则表达式数据库方法
$prod_name = ORM::factory("product")->regex("prod_name", "^" . $searchArray[$i] . "$")->find_all();
$prod_name = ORM::factory("product")->regex("prod_name", "/b" . $searchArray[$i] . "/b")->find_all();
$prod_name = ORM::factory("product")->regex("prod_name", "/\b" . $searchArray[$i] . "\b/")->find_all();
Kohana中的文件指出,正则表达式()的工作方式相同像(),但它不是。这工作得很好:
$prod_name = ORM::factory("product")->like("prod_name",$searchArray[$i])->find_all();
至于做这个的:
$prod_name = ORM::factory("product")->like("prod_name",$searchArray[$i] . "%", FALSE)->find_all();
这应该工作。你可以举一个你正在传递的'$ searchArray [$ i]'值的例子吗? – netcoder 2010-11-08 20:41:34
一个例子是任何类型的字符串。 “棕色鞋”,“皮革外套”等。数据库中的“prod_name”字段是文本。我也尝试使用我正在搜索的实际文本,而不是像这样的变量:“^ shoe $”。仍然不起作用。 – anthony 2010-11-10 19:59:16