pg_select

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

pg_select — Select records


설명

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

pg_select()field=>value가 있는 conditions으로 지정된 레코드를 선택합니다. 쿼리가 성공하면 조건에 지정된 conditions과 일치하는 모든 레코드와 필드가 포함된 배열을 반환합니다.

flags가 지정되면 지정된 플래그가 있는 conditionspg_convert()가 적용됩니다.

기본적으로 pg_select()는 원시 값을 전달합니다. 값을 이스케이프하거나 PGSQL_DML_ESCAPE 옵션을 지정해야 합니다. PGSQL_DML_ESCAPE는 매개변수/식별자를 인용하고 이스케이프합니다. 따라서 테이블/열 이름은 대소문자를 구분합니다.

이스케이프나 준비된 쿼리는 LIKE 쿼리, JSON, Array, Regex 등을 보호할 수 없습니다. 이러한 매개변수는 컨텍스트에 따라 처리되어야 합니다. 즉, 값을 이스케이프/유효화합니다.


매개변수

connection
PgSql\Connection 인스턴스.
table_name
행을 선택할 테이블의 이름입니다.
conditions
key가 table_name 테이블의 필드 이름이고 값이 행을 검색하기 위해 충족해야 하는 조건인 배열입니다.
flags
PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC 또는 PGSQL_DML_STRING 조합. PGSQL_DML_STRINGflags의 일부인 경우 쿼리 문자열이 반환됩니다. PGSQL_DML_NO_CONV 또는 PGSQL_DML_ESCAPE가 설정되면 내부적으로 pg_convert()를 호출하지 않습니다.

반환 값

PGSQL_DML_STRINGflags를 통해 전달되면 문자열을 반환하고, 그렇지 않으면 성공하면 배열을 반환하고 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.1.0 connection 매개변수는 이제 PgSql\Connection 인스턴스를 필요로 합니다. 이전에는 resource가 필요했습니다.
7.1.0 mode 매개변수가 추가되었습니다.

Examples

예제 #1 pg_select() 예제

                  
<?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 문에 적합한 형식으로 변환