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.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Базы данных. Часть Тридцатая.
08-04-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Базы данных. Часть Двадцать Девятая. | PHP. Базы данных. Часть Тридцать Первая. |