Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 412 поощрить/наказать
|
Posted: Fri Apr 03, 2009 1:49 am (написано за 50 секунд)
Post subject: DB_Type: преобразование сложных типов PostgreSQL (ARRAY, ROW, HSTORE) в PHP и обратно
|
|
DB_Type — это фреймворк для преобразования сложных типов PostgreSQL 8.3+ в их аналоги на PHP и обратно. С ее помощью вы можете работать с полями сложного типа (к примеру, двумерным массивом композитных типов) так же просто, как с привычными массивами PHP. В будущем добавится поддержка и других СУБД, в которых имеются сложные типы. Пока же мы будем говорить о PostgreSQL. (Кстати, в MySQL сложных типов нет, поэтому "низкоуровневые" типы DB_Type, такие как Date, Timestamp и т. д., можно использовать в MySQL уже сейчас, если это кому-то понадобится.) Поддерживаются следующие типы данных и любые их вложенные комбинации: * Массивы элементов произвольного типа (в том числе многомерные). * Композитные типы и ROWTYPE (в частности, сами содержащие композитные поля или поля-массивы). * Hstore (в том числе содержащие сложные элементы). * Прочие типы: TIMESTAMP (преобразуется в Unix time), DATE, TIME, BOOLEAN и т. д. dklab.ru/lib/DB_Type/
Last edited by Дмитрий Котеров on Sun Aug 07, 2011 8:12 pm; edited 2 times in total
|
|
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed May 06, 2009 4:26 pm (спустя 1 месяц 3 дня 14 часов 37 минут; написано за 52 секунды)
Post subject:
|
|
а как её установить ? скопировал все файлы в denwer\scripts\lib, но пишет Fatal error: Class 'DB_Pgsql_Type_Array' not found. видимо что то где то надо дописать, но где и что ? Подскажите пожалуйста
|
|
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 412 поощрить/наказать
|
Posted: Wed Jul 01, 2009 5:25 pm (спустя 1 месяц 26 дней 59 минут; написано за 39 секунд)
Post subject:
|
|
При чем тут вообще Денвер? :-) Это же PHP-библиотека. Скопируйте туда, где у вас находятся другие файлы с классами.
|
|
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Aug 07, 2011 8:10 pm (спустя 2 года 1 месяц 6 дней 2 часа 44 минуты; написано за 36 секунд)
Post subject:
|
|
Вышла новая версия библиотеки (2.0), несовместимая со старой версией DB_Pgsql_Type. Главным образом, переименовались классы (было - DB_Pgsql_Type_*, стало - DB_Type_* и DB_Type_Pgsql_*), добавились юнит-тесты, а также были исправлены незначительные баги. Рекомендуем всем, кто пользуется, обновиться. В папке utils лежит скрипт MIGRATE_100_TO_200.pl, который переименует старые классы в новые, если запустить его для вашего проекта.
|
|
Sufir
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jun 15, 2012 5:23 pm (спустя 10 месяцев 7 дней 21 час 13 минут; написано за 2 минуты 1 секунду)
Post subject:
|
|
Большое спасибо, Дмитрий, прекрасная библиотека. А почему DB_Type_Int->input() возвращает string?
|
|
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 412 поощрить/наказать
|
Posted: Fri Jun 22, 2012 12:29 am (спустя 6 дней 7 часов 6 минут; написано за 1 минуту 2 секунды)
Post subject:
|
|
Наверное, на всякий случай - вдруг СУБД 64-битная, а PHP работает на 32-битной машине. Если привести к (int), то большие числа могут побиться, а так хоть будет прозрачность...
|
|
hasseb432
Заглянувший
Joined: 19 Nov 2014
Posts: 2
Карма: 0 поощрить/наказать
|
Posted: Sat Dec 13, 2014 11:07 am (спустя 2 года 5 месяцев 21 день 10 часов 37 минут; написано за 16 секунд)
Post subject:
|
|
В будущем добавится поддержка и 300-135 dumps - testking.net (www.testking.net/testking-300-135.htm) других СУБД, в которых имеются сложные типы. Пока же мы будем говорить о ПостгреСQЛ. (Кстати, в МыСQЛ сложных типов нет, поэтому "низкоуровневые" типы DB_Type, такие как Date, Timestamp и т. д., можно использовать в MySQL уже сейчас, если это кому-то понадобится.)
|
|