PHP 8.4.2 Released!

Пользовательские функции взаимодействия с БД PostgreSQL

Пример содержит пользовательские функции, аналогичные устаревшим функциям БД MySQL.

Пример #1 Пример пользовательских функций для работы с БД PostgreSQL

<?php

// Функция потребуется, поскольку PostgreSQL-соединение связывает базу данных
function pg_list_dbs($db)
{
assert(is_resource($db));

$query = '
SELECT
d.datname as "Name",
u.usename as "Owner",
pg_encoding_to_char(d.encoding) as "Encoding"
FROM
pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
'
;
return
pg_query($db, $query);
}

// Список таблиц
function pg_list_tables($db)
{
assert(is_resource($db));

$query = "
SELECT
c.relname as \"Name\",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
u.usename as \"Owner\"
FROM
pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
c.relkind IN ('r','v','S','')
AND c.relname !~ '^pg_'
ORDER BY 1;
"
;
return
pg_query($db, $query);
}

// Смотрите также описание функции pg_meta_data(). Функция возвращает определение поля в виде массива
function pg_list_fields($db, $table)
{
assert(is_resource($db));
$query = "
SELECT
a.attname,
format_type(a.atttypid, a.atttypmod),
a.attnotnull,
a.atthasdef,
a.attnum
FROM
pg_class c,
pg_attribute a
WHERE
c.relname = '"
.$table."'
AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
"
;
return
pg_query($db, $query);
}

?>

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top