Выполняет запрос

# pg_query

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

pg_query — Выполняет запрос

### Описание

function pg_query(PgSql\Connection `$connection` = ?, string `$query`): PgSql\Result|false

pg_query() выполняет `query` к указанной в `connection` базе данных. pg_query_params() должна быть предпочтительнее в большинстве случаев.

В случае возникновения ошибки функция возвращает `false`, детали ошибки можно получить с помощью функции pg_last_error(), если соединение с БД не нарушено.

> Замечание: Несмотря на то, что параметр `connection` может быть опущен, делать так не рекомендуется, так как это может привести к трудно находимым ошибкам в скриптах.

> Замечание:

> Ранее данная функция называлась pg_exec(). pg_exec() всё ещё доступна в целях обеспечения совместимости, но лучше использовать новое имя.

### Список параметров

`connection`

  Экземпляр класса PgSql\Connection. Функция выберет соединение по умолчанию, если параметр `connection` не указали. Соединение по умолчанию — последнее соединение, которое установила функция pg_connect() или pg_pconnect().

  Внимание

  Начиная с PHP 8.1.0 выбор функцией соединения по умолчанию устарел.

`query`

  Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически выполняются, как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения. Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.

  Внимание

  Строковое представление пользовательских данных очень опасно и часто приводит к возможности SQL инъекции. В большинстве случаев лучше передавать пользовательские данные параметром в pg_query_params(), а не подставлять их в строку запроса.

  Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть хорошо экранированы.

### Возвращаемые значения

Экземпляр PgSql\Result в случае успешного выполнения или `false`, если возникла ошибка.

### Список изменений

Версия | Описание
--- | ---
8.1.0 | Функция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
8.1.0 | Параметр `connection` теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.

### Примеры

Пример #1 Пример использования pg_query()

    <?php

    $conn = pg_pconnect("dbname=publisher");
    if (!$conn) {
      echo "Произошла ошибка.\n";
      exit;
    }

    $result = pg_query($conn, "SELECT author, email FROM authors");
    if (!$result) {
      echo "Произошла ошибка.\n";
      exit;
    }

    while ($row = pg_fetch_row($result)) {
      echo "Автор: $row[0]  E-mail: $row[1]";
      echo "<br />\n";
    }

    ?>

Пример #2 Использование нескольких выражений в pg_query()

    <?php

    $conn = pg_pconnect("dbname=publisher");

    // эти выражения будут исполнены в одной транзакции

    $query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
    $query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
    $query .= "UPDATE authors SET author=NULL WHERE id=3;";

    pg_query($conn, $query);

    ?>

### Смотрите также

- pg_connect() - Открывает соединение с базой данных PostgreSQL
- pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
- pg_fetch_array() - Возвращает строку результата в виде массива
- pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
- pg_num_rows() - Возвращает количество строк в выборке
- pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open