PostgreSQL的to_tsquery()与PDO的准备语句
问题描述:
如果直接写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")
);
答
像这样:
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)
这怎么回答这个问题? – shapeshifter 2014-01-03 03:22:02
@shapeshifter:通过强调所需的算术,或许?例如,不是'to_tsquery(:word_1 |:word_2)',而是'to_tsquery(:word_1)|| to_tsquery(:word_2)'... – 2014-01-03 10:40:01