pg_query
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
pg_query — Выполняет запрос
Описание
$connection
= ?
, string $query
) : resource|false
pg_query() выполняет query
к указанной в connection
базе данных.
pg_query_params() должна быть
предпочтительнее в большинстве случаев.
В случае ошибки функция возвращает 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);
?>
Смотрите также
- pg_connect() - Открывает соединение с базой данных PostgreSQL
- pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
- pg_fetch_array() - Возвращает строку результата в виде массива
- pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
- pg_num_rows() - Возвращает количество строк в выборке
- pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)