【问题标题】:postgresql to_tsquery() with PDO's prepared statement带有 PDO 准备好的语句的 postgresql to_tsquery()
【发布时间】:2013-05-13 13:25:26
【问题描述】:

如果直接写

$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" )
);

【问题讨论】:

    标签: php postgresql pdo


    【解决方案1】:

    像这样:

    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:也许是通过突出显示所需的算术?例如,不是to_tsquery( :word_1 | :word_2 ),而是to_tsquery( :word_1 ) || to_tsquery( :word_2 )...
    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2010-11-30
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多