PHP.mk документација

pg_select

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.pg-select.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.pg-select.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
pg_select

Референца за `function.pg-select.php` со подобрена типографија и навигација.

function.pg-select.php

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_select Избери записи

= NULL

pg_select(
         PgSql\Connection $connection,
         string $table_name,
         array $conditions = [],
         int $flags = PGSQL_DML_EXEC,
         int $mode = PGSQL_ASSOC
): array|string|false

pg_select() избира записи наведени од conditions што има field=>value. За успешен упит, враќа низа што ги содржи сите записи и полиња што одговараат на условите наведени од conditions.

Враќа flags е поставено, pg_convert() се применува на conditions со специфицираните знаменца.

Враќа mode е поставено, вратената вредност ќе биде во форма на низа со PGSQL_NUM, асоцијативна низа со PGSQL_ASSOC (стандардно) или и двете со PGSQL_BOTH.

Стандардно pg_select() проследува сурови вредности. Вредностите мора да бидат избегнати или мора да биде специфицирана опцијата PGSQL_DML_ESCAPE. PGSQL_DML_ESCAPE ги цитира и избегнува параметрите/идентификаторите. Затоа, имињата на табелите/колоните станаа чувствителни на големи и мали букви.

Имајте предвид дека ниту избегнувањето ниту подготвеното барање не можат да заштитат LIKE барање, JSON, Низа, Regex, итн. Овие параметри треба да се третираат според нивните контексти. т.е. Избегнувајте/потврдете вредности.

Параметри

connection

Еден PgSql\Connection instance.

table_name

Име на табелата од која да се изберат редови.

conditions

Еден array чии клучеви се имиња на полиња во табелата table_name, и чии вредности се условите што еден ред мора да ги исполни за да биде преземен. Од PHP 8.4.0, кога е обезбедена празна низа, нема да се применат услови. Претходно, функцијата не успеа со празна conditions argument.

flags

Податоци за конвертирање. PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING комбинирано. Ако PGSQL_DML_STRING е дел од flags тогаш се враќа низата на упитот. Кога PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE е поставено, не го повикува pg_convert() internally.

mode

Податоци за конвертирање. PGSQL_ASSOC, PGSQL_NUM or PGSQL_BOTH Враќа PGSQL_ASSOC е поставено вратената вредност ќе биде асоцијативна array, со PGSQL_NUM вратената вредност ќе биде array, и со PGSQL_BOTH вратената вредност ќе биде и асоцијативна и нумерички индексирана array.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. string if PGSQL_DML_STRING се пропушта преку flags, инаку враќа array при успех, или false при неуспех.

Дневник на промени

Верзија = NULL
8.4.0 conditions сега е опционално.
8.1.0 На connection параметарот очекува PgSql\Connection инстанца сега; претходно, а resource се очекуваше.
7.1.0 На mode параметар беше додаден.

Примери

Пример #1 pg_select() example

<?php
$db
= pg_connect('dbname=foo');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if (
$rec) {
echo
"Records selected\n";
var_dump($rec);
} else {
echo
"User must have sent wrong inputs\n";
}
?>

Види Исто така

  • pg_convert() - Конвертирање на вредностите на асоцијативниот список во форми погодни за SQL изјави

Белешки од корисници 2 забелешки

david точка tulloh на infaze точка com точка au
20 години пред
Valid options are PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DMP_ASYNC, PGSQL_DML_STRING (pulled out of source code).

This function does not support selecting from multiple tables.  You can get around this by setting the PGSQL_DML_NO_CONV option.  This prevents the error which occurs when the function tries to convert the condition array.

I think it is also important to point out that the table_name field is not safe, particularily with the PGSQL_DML_NO_CONV option.

The arguements array field is compulsory, as documented.  What isn't so clear is that the array has to actually have some values in it, you can't do a select all.

In summary, this function is good for a very small subset of basic queries.  If you are after anything more complex you are better off with pg_query.
wietse at cj2 dot nl
20 години пред
David mentioned that you can't do a Select all.
However, when executing this script:
<?php
    $conn_string = "dbname=mydb";
    $db = pg_connect($conn_string);
    $selectfields = array("imgid" => "");
    $records = pg_select($db,"mmsfiles",$selectfields);
    print_r($records);
?>
...I get this result:
Array
(
    [0] => Array
        (
            [imgid] => 1
            [file] => /home/wietse/public_html/mms/images/1.gif
            [thumb] => 
        )
    [1] => Array
        (
            [imgid] => 2
            [file] => /home/wietse/public_html/mms/images/2.gif
            [thumb] => 
        )
    [2] => Array
        (
            [imgid] => 3
            [file] => /home/wietse/public_html/mms/images/3.gif
            [thumb] => 
        )
    [3] => Array
        (
            [imgid] => 4
            [file] => /home/wietse/public_html/mms/images/4.gif
            [thumb] => 
        )
)
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.