2013-05-13 250 views
2

如果直接寫PostgreSQL的to_tsquery()與PDO的準備語句

$sql = "... to_tsquery('word_1 | word_2')"; 

工作,但如何使用這個語法與PDO的準備語句?

,這是什麼正確的語法:

$sql = " ... to_tsquery(:word_1 | :word_2) "; //this is incorrect 

$sth = $db->prepare($sql); 
$sth->execute(
    array(':word_1'=>"word_1", ':word_2'=>"word_2") 
); 

回答

0

像這樣:

denis=# select to_tsquery('(foo | bar) & baz'); 
     to_tsquery   
--------------------------- 
('foo' | 'bar') & 'baz' 
(1 row) 

denis=# select (to_tsquery('foo') || to_tsquery('bar')) && to_tsquery('baz'); 
     ?column?   
--------------------------- 
('foo' | 'bar') & 'baz' 
(1 row) 
+0

這怎麼回答這個問題? – shapeshifter 2014-01-03 03:22:02

+0

@shapeshifter:通過強調所需的算術,或許?例如,不是'to_tsquery(:word_1 |:word_2)',而是'to_tsquery(:word_1)|| to_tsquery(:word_2)'... – 2014-01-03 10:40:01