(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_query — Выполняет запрос
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);
?>