(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);
?>