(PHP 4 >= 4.2.0, PHP 5, PHP 7)
pg_query — Выполняет запрос
$connection
], string $query
)
pg_query() executes the query
on the specified database connection
.
pg_query_params() should be preferred
in most cases.
В случае ошибка функция возвращает FALSE
, детали ошибки можно
получить с помощью функции pg_last_error() если
соединение с БД не нарушено.
Замечание: Несмотря на то, что параметр
connection
может быть опущен, делать так не рекомендуется, так как это может привести к трудно находимым ошибкам в скриптах.
Замечание:
Ранее данная функция называлась pg_exec(). pg_exec() все еще доступна в целях обеспечения совместимости, но лучше использовать новое имя.
connection
Ресурс соединения с БД PostgreSQL. Если не передать параметр
connection
используется соединение по умолчанию.
Соединение по умолчанию -- это последнее соединение, созданное функцией
pg_connect() или pg_pconnect().
query
Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически выполняются как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения. Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.
Строковое представление пользовательских данных очень опасно и часто приводит к возможности SQL инъекции. В большинстве случаев лучше передавать пользовательские данные параметром в pg_query_params(), а не подставлять их в строку запроса.
Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть хорошо экранированы.
Ресурс результата запроса в случае успеха или FALSE
в случае возникновения ошибки.
Пример #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);
?>