pg_query

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

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

Описание

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() - Возвращает количество затронутых запросом записей (кортежей)