2013-06-29 52 views
0

在我的HTML頁面中,用戶輸入搜索查詢並通過GET發送。在我的一些mongodb文檔中,有些字段的值爲'。但是,當用戶輸入包含'的查詢時,不會返回任何結果。我也用PHP addslash函數沒有成功。我應該如何將查詢放在find函數中?MongoDB文檔中的單個文件

$col->find(['word' => new MongoRegex('/^' . addslashes($term) . '/i')]; 
+0

http://stackoverflow.com/questions/17335746/apostrophe-like-and-equal-clause-not-working –

+0

@DipeshParmar我的DBMS是noSQL。 – PHPst

回答

0

我在2天之前有同樣的問題,我已經解決了它使用下面的查詢。

下面是我的解決方案。

SELECT * 
FROM tags 
WHERE `name` = 'limit\\''s' 
LIMIT 0 , 30 

SEE HERE

+0

我的DBMS是noSQL。 – PHPst

0

的JS外殼似乎需要'轉義爲Unicode \x27(參見:this answer)但PHP驅動程序不應該要求ny特殊待遇。請看下面的例子:

$m = new MongoClient(); 
$c = $m->test->foo; 
$c->drop(); 
$c->insert(['x'=>"foo'bar"]); 
$c->insert(['x'=>"foobar"]); 
$r = $c->find(['x' => new MongoRegex("/^foo'/i")]); 
var_dump(iterator_to_array($r)); 

此查詢僅第一個文檔,其中xfoo'bar匹配。如果你運行腳本,你應該看到打印出來的文檔。