PHP komutu gibi Postgres parametrelerini anlama

2 Cevap php

How can you use parameters in Postgres Like komutu?

I am reading this document. I am trying to search a word lorem in the table questions and in its column body.

PHP içeride başarısız aşağıdaki kodu çalıştırın

$result = pg_query_params ( $dbconn, 
    "SELECT question_id, body
    FROM questions
    WHERE body ilike '%$1%'",
    array ( $_GET['search'])                                                                                                                                                       
);

Ben bu uyarı alıyorum

Warning: pg_query_params() [function.pg-query-params]: Query failed: ERROR: bind message supplies 1 parameters, but prepared statement "" requires 0 in /var/www/codes/search_body.php on line 10 Call Stack

2 Cevap

Bir whole değer değil, içeride tırnak yerine bir parametre kullanmak zorunda.

Çözüm 1: parametre değeri içine LIKE joker birleştirmek:

$result = pg_query_params ( $dbconn, 
    "SELECT question_id, body
    FROM questions
    WHERE body ilike $1",
    array ( "%" . $_GET['search'] . "%")
);

Çözüm 2: SQL ifadesinde LIKE joker birleştirmek:

$result = pg_query_params ( $dbconn, 
    "SELECT question_id, body
    FROM questions
    WHERE body ilike '%' || $1 || '%'",
    array ( $_GET['search'] )
);

$ 1 yerine bir yer tutucu, literal olarak alınır, tek tırnak içinde çünkü sanırım.

Deneyin:

$result = pg_query_params ( $dbconn, 
    "SELECT question_id, body
    FROM questions
    WHERE body ilike $1",
    array ('%' . $_GET['search'] . '%')                                                                                                                                                       
);