| Автор |
Сообщение |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 11, 2006 10:58 am (спустя 1 день 8 часов 19 минут; написано за 1 минуту 35 секунд)
Заголовок сообщения:
|
|
Интересно погуглить по слову DbSimple. Находятся всякие разные библиотеки; одна из них - http://www.greaterscope.net/project/dbSimple - на видо очень пожожа на DbSimple (особенно имена методов и идеология фетча). Однако, заглянув в код, становится ясно, что она крайне слабая. Там даже placeholder-ов нет.
| Константин Жинько [tIT] писал(а): |
|
В DbSimple2 работать не будет, потому что ты поменял debug_backtrace_smart |
Вроде поправил - надо было просто $caller = $db->findLibraryCaller();
|
|
| Вернуться к началу |
|
 |
Антон Макаренко
Участник форума

Зарегистрирован: 05.02.2004
Сообщ.: 374
Карма: 30 поощрить/наказать
Откуда: Киев
|
Добавлено: Вт Dec 12, 2006 5:04 pm (спустя 1 день 6 часов 5 минут; написано за 6 минут 8 секунд)
Заголовок сообщения:
|
|
Переходя на 2.x с 1.x, попался на глупое стечение обстоятельств. К папке с библиотеками (скажем, ".../lib") был прописан include path. 1.x лежала в папке .../lib/DbSimple, а 2.x я сохранил как .../lib/DbSimple2 Таким образом, код оказался нерабочим:
| Код (php): |
скопировать код в буфер обмена |
// include pathif (! defined("PATH_SEPARATOR")) define("PATH_SEPARATOR", getenv("COMSPEC")? ";" : ":"); ini_set("include_path", ini_get("include_path").PATH_SEPARATOR. $CFG['LIBS']); // ...// mysql connectionrequire(CFG_LIBS. '/DbSimple2/Generic.php'); $DB = DbSimple_Generic::connect ('mysql://'.CFG_MYSQL_USER. ':'.CFG_MYSQL_PASSWORD. '@'.CFG_MYSQL_HOST. '/'.CFG_MYSQL_DATABASE ); |
Как показало исследование кода, если include path прописан, Generic.php ищет DbSimple/<бд>.php в include path... и находит первую версию :-/ Be careful!
|
|
| Вернуться к началу |
|
 |
Maus
Модератор

Зарегистрирован: 29.06.2003
Сообщ.: 7417
Карма: 242 поощрить/наказать
Откуда: пос. Омсукчан Магаданской области
|
Добавлено: Вт Dec 12, 2006 9:23 pm (спустя 4 часа 18 минут; написано за 1 минуту 2 секунды)
Заголовок сообщения:
|
|
| Антон Макаренко писал(а): |
|
Что если при составлении запроса при передаче массивов в ?a и ?# анализировать числа и булевы и не окружать их кавычками? |
а что, если кому-то другому нужно иногда число передать именно как строку? Мы приходим опять к тому же самому - типизированным массивным плейсхолдерам
|
|
| Вернуться к началу |
|
 |
Антон Макаренко
Участник форума

Зарегистрирован: 05.02.2004
Сообщ.: 374
Карма: 30 поощрить/наказать
Откуда: Киев
|
Добавлено: Ср Dec 13, 2006 12:25 am (спустя 3 часа 2 минуты; написано за 9 минут 26 секунд)
Заголовок сообщения:
|
|
| Maus писал(а): |
|
число передать именно как строку |
Для этого в PHP есть приведение типов, функция settype(), а в DbSimple, соответственно is_integer(), is_float(). Сами плейсхолдеры ?a и #? не меняются, только убирают "лишние" кавычки при составлении, основываясь на типах элементов исходного массива. Не претендую на тщательные проверки чисел, записанных в "необычных" форматах, а простейшие улучшения (?) функциональности. Вообще мысль зародилась еще давно: сначала от желания экономить (спич..) кавычки, но затем от новых строгих требований СУБД; в нашем случае - невозможности использовать 2 вида плейсхолдеров.
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Ср Dec 13, 2006 3:40 pm (спустя 15 часов 14 минут)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Вс Dec 17, 2006 3:47 pm (спустя 4 дня 6 минут; написано за 21 секунду)
Заголовок сообщения:
|
|
И вдогонку. Первая мысль - а зачем я сделал i алиасом a, ведь там могут быть и числовые ключи. Вторая - так ведь и логично: для запроса вида "insert into table values (?i)", array('foo','bar') как раз подходит :) Тут же третья мысль - добавить константу DBSIMPLE_DEFAULT, которая трансформируется в неэкранированное DEFAULT. -INF (оно же log(0)) уже используется - зато просто INF свободно, можно для этих целей и попользовать.
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Вс Dec 17, 2006 3:52 pm (спустя 5 минут; написано за 35 секунд)
Заголовок сообщения:
|
|
| ...а еще есть NAN - например, результат acos(1.01). Сколько интересного узнаешь, направленно копая мануал :)
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Вс Dec 17, 2006 4:36 pm (спустя 44 минуты; написано за 1 минуту 43 секунды)
Заголовок сообщения:
|
|
| symbix писал(а): |
|
Но в целом, вынос такого функционала в Generic мне кажется вполне оправданным, так как стандарт предусматривает только такую форму записи insert into. |
А зачем дополнительный маркер? Можно ?a оставить. Пожалуй, полезная фича.
 М |
|
Вы бы зарегистрировались что ли. |
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Вс Dec 17, 2006 5:16 pm (спустя 39 минут; написано за 6 минут 35 секунд)
Заголовок сообщения:
|
|
Гм, если оставить "?a", то как отличить контекст insert от update? дополнительный парсинг запроса делать? слишком затратно это, мне кажется. С DEFAULT все совсем просто получилось: в Generic.php
и в Postgresql.php
Возможно, по аналогии с обработкой NULL лучше это делать в Generic.php. Хотя, с другой стороны, я бы и обработку того же NULL вынес в _performEscape - чисто эстетически мне не нравятся частные случаи, дублирующиеся в нескольких местах.
| Цитата: |
|
Вы бы зарегистрировались что ли. |
Спасибо за предложение, но не думаю, что буду активным участником форума вне этой темы.
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Вс Dec 17, 2006 5:17 pm (спустя 59 секунд; написано за 24 секунды)
Заголовок сообщения:
|
|
| Ошибся, define('DBSIMPLE_DEFAULT', INF); разумеется.
|
|
| Вернуться к началу |
|
 |
Phoebus
Участник форума

Зарегистрирован: 16.11.2003
Сообщ.: 30
Карма: 2 поощрить/наказать
Откуда: Minsk
|
Добавлено: Вс Dec 17, 2006 10:33 pm (спустя 5 часов 16 минут; написано за 2 минуты 22 секунды)
Заголовок сообщения:
|
|
symbix
А так?
И не надо доп. маркер совершенно. Такое нововведение как ?i -- это то же самое как введение метода Select($tables_to_fetch,$columns_to_fetch) который бы строил запрос самостоятельно.
Последний раз редактировалось: Phoebus (Вс Dec 17, 2006 11:35 pm), всего редактировалось 1 раз
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Вс Dec 17, 2006 10:45 pm (спустя 12 минут; написано за 1 минуту 36 секунд)
Заголовок сообщения:
|
|
| Phoebus писал(а): |
$DB->Query(' INSERT INTO tbl ( ?a ) VALUES ( ?a )', array_keys($array_data), array_values($array_data)); |
Вариант самый разумный, если не одно но: ключи - строки, поэтому будут заключены в апострофы. В случае MySQL это породит ошибку.
|
|
| Вернуться к началу |
|
 |
Phoebus
Участник форума

Зарегистрирован: 16.11.2003
Сообщ.: 30
Карма: 2 поощрить/наказать
Откуда: Minsk
|
Добавлено: Вс Dec 17, 2006 10:48 pm (спустя 3 минуты; написано за 1 минуту 11 секунд)
Заголовок сообщения:
|
|
| Константин Жинько [tIT] писал(а): |
|
Вариант самый разумный, если не одно но: ключи - строки, поэтому будут заключены в апострофы. В случае MySQL это породит ошибку. |
Пардон, первый плейсходлер у меня используется так: ?# Я уже давно себе переделал его, добавив проверку is_array: если массив, то квотим массив идентификаторов, разделяя запятой, если нет -- то стандартный квотинг строки.
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 12:04 am (спустя 1 час 15 минут; написано за 2 минуты 33 секунды)
Заголовок сообщения:
|
|
| Дмитрий Кóтеров писал(а): |
|
И второй вопрос - приведите пример запроса, где DEFAULT требуется. |
(-; Перефразирую вопрос: приведите select/insert/update запрос, где используется ключевое слово DEFAULT. Лично мне пока такие конструкции не попадались.
| Дмитрий Кóтеров писал(а): |
|
Я переделаю на case insensitive, если ты не против. |
Объективных возражений пока нет.
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 1:49 am (спустя 1 час 45 минут)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
Александр Шустов
Заглянувший
Зарегистрирован: 18.09.2006
Сообщ.: 16
Карма: 0 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 4:17 am (спустя 2 часа 27 минут; написано за 1 минуту 7 секунд)
Заголовок сообщения:
|
|
| Кстати, невозможность использования комбинации ?_?# - это фича или баг?
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 11:08 am (спустя 6 часов 51 минуту; написано за 3 минуты 55 секунд)
Заголовок сообщения:
|
|
?_?# - можете использовать, а можете и не использовать, в зависимости от контекста. Если в качестве значения для ?# передаете имя таблицы без префикса, то надо ?_?#, а если с префиксом, то ?#. Кроме того, в ?# ведь могут не только имена таблиц передаваться, но также и имена столбцов, а им префикс не нужен. Так что нельзя сказать, баг это или фича - так же, как нельзя сказать, баг или фича использование PHP-шного trim() в программе. :-)
| Александр Шустов писал(а): |
|
теперь полностью отпала необходимость в DbSimple с собственными добавлениями |
Это и очень хорошо. Вы в слежующий раз, прежде чем такие добавления, делать, пишите сюда, будем обсуждать идеи. Возможно, они окажутся достаточно универсальными, чтобы включить их прямо в библиотеку (возможно, с некоторыми идеологическими модификациями). А самостоятельно код патчить - это же означает сильно усложнить себе апгрейд...
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 2:00 pm (спустя 2 часа 51 минуту; написано за 3 минуты 26 секунд)
Заголовок сообщения:
|
|
| Цитата: |
|
Перефразирую вопрос: приведите select/insert/update запрос, где используется ключевое слово DEFAULT. Лично мне пока такие конструкции не попадались |
| Код (php): |
скопировать код в буфер обмена |
if ($id === false) { $param = "DEFAULT"; } else { $param = "'" . $db->escape($id) . "'"; } //... $db->query("insert into table (param, foo, bar) values ($id, $foo, $bar)"); |
Встречается нечто подобное. (Тут $db, разумеется, к DbSimple отношения не имеет).
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 2:05 pm (спустя 5 минут; написано за 1 минуту 47 секунд)
Заголовок сообщения:
|
|
Наверное, Вы имели в виду не $id, а $param в query(). А каково значение default для таблицы table? Приведите полную структуру таблицы. Кроме того, попробуйте использовать "insert into table(?#) values(?a)" (см. выше) и в случае default просто не передавать поле id вовсе.
|
|
| Вернуться к началу |
|
 |
symbix
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 2:12 pm (спустя 6 минут; написано за 1 минуту 29 секунд)
Заголовок сообщения:
|
|
| Да, Вы правы, #? с поддержкой массивов, пожалуй, действительно решает сразу все вопросы.
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 2:57 pm (спустя 45 минут; написано за 57 секунд)
Заголовок сообщения:
|
|
| Дмитрий Кóтеров писал(а): |
|
?_?# - можете использовать, а можете и не использовать |
Дмитрий, вы меня неправильно поняли. Например: $mysql->setIdentPrefix('prx_'); При попытке использования комбинации ?_?# получаем prx_`table_name`
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 3:01 pm (спустя 3 минуты; написано за 12 секунд)
Заголовок сообщения:
|
|
| Гость писал(а): |
|
При попытке использования комбинации ?_?# получаем prx_`table_name` |
Это баг.
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 3:01 pm (спустя 28 секунд; написано за 19 секунд)
Заголовок сообщения:
|
|
Нет, это не баг. Вот правильное решение: $DB->query("SELECT * FROM ?#", $DB->setIdentPrefix() . $tableName)
|
|
| Вернуться к началу |
|
 |
Александр Шустов
Заглянувший
Зарегистрирован: 18.09.2006
Сообщ.: 16
Карма: 0 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 3:13 pm (спустя 11 минут; написано за 45 секунд)
Заголовок сообщения:
|
|
| Дмитрий Кóтеров писал(а): |
Вот правильное решение: $DB->query("SELECT * FROM ?#", $DB->setIdentPrefix() . $tableName) |
А вы не ошиблись? $DB->setIdentPrefix() - возвращает старый вариант префикса прошу прощения вы правы
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 3:16 pm (спустя 3 минуты)
Заголовок сообщения:
|
|
| Дмитрий Кóтеров писал(а): |
|
$DB->query("SELECT * FROM ?#", $DB->setIdentPrefix() . $tableName) |
Криво и коряво - каждый раз писать $DB->setIdentPrefix(), когда нужна таблица. Куда короче руками этот префикс записать (-;
|
|
| Вернуться к началу |
|
 |
Александр Шустов
Заглянувший
Зарегистрирован: 18.09.2006
Сообщ.: 16
Карма: 0 поощрить/наказать
Откуда: Москва
|
Добавлено: Пн Dec 18, 2006 3:18 pm (спустя 2 минуты; написано за 1 минуту 56 секунд)
Заголовок сообщения:
|
|
Но все-таки, как-то некрасиво и если в ?# передать массив, все усложниться в разы да и если и использовать приведенный вами вариант, то нужно function setIdentPrefix($prx) заменить на function setIdentPrefix($prx = null) да и вариант setIdentPrefix().$table_name это все-таки не ?_?#...
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пн Dec 18, 2006 3:56 pm (спустя 37 минут; написано за 1 минуту 20 секунд)
Заголовок сообщения:
|
|
| Константин Жинько [tIT] писал(а): |
|
каждый ра |
"Каждый раз" - это сильно. :-) Ситуации, когда это бывает нужно, случаются исчезающе редко и говорят скорее об ошибках в проектировании архитектуры, чем о недостатках метода.
| Александр Шустов писал(а): |
|
если в ?# передать массив, все усложниться в разы |
Префикс ?_ используется для имен таблиц, а не для полей. Зачем Вам передавать список имен таблиц в ?# ?
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Ср Dec 20, 2006 11:07 pm (спустя 2 дня 7 часов 10 минут)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
zuzmic
Заглянувший
Зарегистрирован: 25.12.2006
Сообщ.: 1
Карма: 0 поощрить/наказать
|
Добавлено: Вт Dec 26, 2006 12:06 am (спустя 5 дней 59 минут; написано за 1 минуту 51 секунду)
Заголовок сообщения:
|
|
Прошу прощения, если я написал не в ту ветку. Хочу спросить DBSimple есть в варианте совместимом с PHP5 ?
|
|
| Вернуться к началу |
|
 |
Константин Жинько [tIT]
Сотрудник «Лаборатории»

Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 110 поощрить/наказать
Откуда: Москва
|
Добавлено: Вт Dec 26, 2006 12:35 am (спустя 29 минут; написано за 1 минуту 20 секунд)
Заголовок сообщения:
|
|
| zuzmic писал(а): |
|
Хочу спросить DBSimple есть в варианте совместимом с PHP5 ? |
Он совместим с PHP4, а следовательно совместим с PHP5. У меня на 5.1.6 работает превосходно! С 5.2 могут быть (и скорее всего будут) проблемы, ибо обратная совместимость 5.2 во многом утеряна.
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Чт Dec 28, 2006 4:29 pm (спустя 2 дня 15 часов 53 минуты)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
chin
Участник форума

Зарегистрирован: 23.02.2005
Сообщ.: 312
Карма: 26 поощрить/наказать
Откуда: Украина, Киев
|
Добавлено: Вт Янв 09, 2007 2:20 am (спустя 11 дней 9 часов 51 минуту; написано за 1 минуту 19 секунд)
Заголовок сообщения:
|
|
Господа, ответьте, пожалуйста.
| chin писал(а): |
|
Где мы явно указываем изменение таблицы tree. |
Это важный вопрос для меня. Какие мысли по этому поводу?
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Пт Янв 12, 2007 9:45 am (спустя 3 дня 7 часов 24 минуты; написано за 2 минуты 1 секунду)
Заголовок сообщения:
|
|
Кстати, в качестве кэш-хранилища можно использовать Cache_Lite из PEAR: http://pear.php.net/manual/en/package.caching.cache-lite.intro.php
Вероятно, стоит сделать поддержку его прямо в библиотеке, т.е. дать возможность в setCacher() передавать прямо объект класса Cache_Light (method_exists($cacher, 'get') && method_exists($cacher, 'save')), а не только имя функции-кэшера. Так будет совсем универсально и благостно для буржуев. ;-)
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Сб Янв 13, 2007 3:39 pm (спустя 1 день 5 часов 54 минуты)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Сб Янв 13, 2007 3:43 pm (спустя 4 минуты)
Заголовок сообщения:
|
|
|
|
|
| Вернуться к началу |
|
 |
Михаил Саяпин
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Вт Янв 16, 2007 12:11 pm (спустя 2 дня 20 часов 28 минут; написано за 1 минуту 39 секунд)
Заголовок сообщения:
|
|
Доброго времени, Замечательный враппер, единственное, что на моем неидеальном хостинге с выделением памяти под PHP всего 4 Мбайт - падает с превышением памяти из-за прямого выбора всего запроса. mysql_query + mysql_fetch_* решили проблему, но решение некрасивое. Очень бы хотелось какой-то модификатор для порядового выбора.
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Вт Янв 16, 2007 12:18 pm (спустя 6 минут; написано за 43 секунды)
Заголовок сообщения:
|
|
| Что же у Вас там за выборка такая огормная, что она в память не влезает... Может быть, неправильная логика скрипта? Например, выбираете ВСЕ записи, вместо того, чтобы выбрать 1 страницу?
|
|
| Вернуться к началу |
|
 |
Гость
Карма: 367 поощрить/наказать
|
Добавлено: Ср Янв 17, 2007 9:54 pm (спустя 1 день 9 часов 36 минут; написано за 1 минуту 17 секунд)
Заголовок сообщения:
|
|
| Возможно не очень внимательно искал... А есть ли возможность получить имена и типы полей таблицы?
|
|
| Вернуться к началу |
|
 |
Дмитрий Кóтеров
Администратор

Зарегистрирован: 10.03.2003
Сообщ.: 13553
Карма: 405 поощрить/наказать
|
Добавлено: Чт Янв 18, 2007 12:14 am (спустя 2 часа 19 минут; написано за 39 секунд)
Заголовок сообщения:
|
|
http://dklab.ru/lib/DbSimple/manual.html
Обращаю особое внимание на то, что DbSimple намеренно не занимается «выравниваниием диалектов» SQL в различных СУБД (что частично пытаются делать PEAR DB и ADOdb). Она лишь позволяет обращаться к ним через единый стандартизированный и очень удобный интерфейс. ... Также DbSimple не является слоем получения стандартизированных метаданных БД (информации о структуре таблиц, полей, индексов и т. д.). Вообще, у меня есть такое убеждение, что необходимость получения метаданных базы свидетельствует об ошибке в архитектуре системы.
|
|
| Вернуться к началу |
|
 |
|