ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Базы данных. Часть Тридцатая.


08-04-2015

string pg_last_notice(resource connection)
Функция pg_last_notice получает последнее уведомление, отправленное сервером PostgreSQL. Уведомления не аналогичны сообщениям, сгенерированным с помощью операторов NOTIFY.
integer pg_last_oid(resource result)
Функция pg_last_oid (листинг 17.49) возвращает идентификатор объекта (OID) последней строки, вставленной в таблицу, если последним вызовом функции pg_query был оператор INSERT.
OID представляет собой внутренний идентификатор, уникальный для каждой строки базы данных, а не для каждого первичного ключа таблицы. Однако, как показано в листинге 17.49, новую строку можно идентифицировать с помощью OID. В случае ошибки возвращается значение -1.

| Листинг 17.49. Функция pg_last_oid_
<?php
// подключиться к базе данных $Link = pg_connect(" " .
"dbname=freetrade " .
"user=freetrade " .
"password=freetrade"); // вставить в таблицу новую строку $Query = "INSERT INTO fee (name) " .
"VALUES ('Gift Wrap')"; $Result = pg_query($Link, $Query);
if(!$Result)
{
print("Insert failed"); exit();
}
$oid = pg_last_oid($Result); print("Row inserted as OID $oid<br>"); //получить значение первого ключа 
$Query = "SELECT id FROM fee WHERE OID=$oid "; $Result = pg_query($Link, $Query); $Rows = pg_fetch_all($Result); $id = $Rows[0]['id'];
print("Столбцу задано значение идентификатора $id<br>");
?>

boolean pg_lo_close(resource lob)
Функция pg_lo_close предназначена для закрытия больших объектов. Аргумент lob имеет тип resource, возвращаемый pg_lo_open.
integer pg_lo_create(resource connection)
Функция pg_lo_create (листинг 17.51) создает данные типа LOB и возвращает идентификатор объекта OID. В листинге 17.50 представлен SQL-оператор для создания таблицы, предназначенной для хранения изображений. Postgre-SQL создает объект как с доступом для чтения, так и для записи.

| Листинг 17.50. Создание таблицы, предназначенной для хранения изображений
CREATE TABLE image (
name VARCHAR(2 5 5), mime VARCHAR(2 5 5), object_id OID NOT NULL, PRIMARY KEY(name)
);

Листинг 17.51. Использование больших объектов в PostgreSQL

<?php
// подключиться к базе данных $Link = pg_connect(" " .
"dbname=freetrade " .
"user=freetrade " .
"password=freetrade");
/*
** Вставить изображение как большой логический объект
*/
// начало транзакции pg_query($Link, "BEGIN"); // создать большой объект $oid = pg_lo_create($Link);
// создать новую строку в таблице изображений
$Query = "INSERT INTO image (name, mime, object_id) " .
"VALUES ('leonatkinson.png', 'image/png', $oid)"; pg_query($Link, $Query);
// прочитать изображение и записать его в большой объект $image = file_get_contents("leonatkinson.png"); $lob = pg_lo_open($Link, $oid, "w"); pg_lo_write($lob, $image);
pg_lo_close($lob); pg_query($Link, "COMMIT");
/*
** получить изображения
*/
// начать транзакцию pg_query($Link, "BEGIN"); // получить OID и MIME- тип $Query = "SELECT object_id, mime " . "FROM image " .
"WHERE name = 'leonatkinson.png' "; $Result = pg_query($Link, $Query); $oid = pg_fetch_result($Result, 0, 0); $mime = pg_fetch_result($Result, 0, 1); // отправить изображение в браузер $lob = pg_lo_open($Link, $oid, "w"); header("Content-type: $mime"); pg_lo_read_all($lob); pg_lo_close($lob); pg_query($Link, "COMMIT");
?>

boolean pg_lo_export(resource lob, string path, resource connection)
Функция pg_lo_export записывает большой объект по пути, указанному аргументом path. Необязательный аргумент connection по умолчанию указывает на последнее соединение, установленное сценарием.
resource pg_lo_import(resource connection, string path)
Функция pg_lo_import создает большой объект из файла и возвращает большой объект типа resource.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Базы данных. Часть Двадцать Девятая. PHP. Базы данных. Часть Тридцать Первая.