Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

6_DbSimple version 1.x: лаконичная работа с различными СУБД (Дмитрий Котеров, оценка: 6)
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
Author Message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Wed Sep 06, 2006 9:45 am (написано за 47 секунд)
   Post subject:
Reply with quote

Кстати, в DbSimple 2.0 автоматически поддерживается возможность MySQL 4.x+ SQL_CALC_FOUND_ROWS, там запрос вообще не надо трогать.
Back to top
View user's profile Send private message Send e-mail
Satyrius
Участник форума



Joined: 28 Mar 2006
Posts: 110
Карма: 2
   поощрить/наказать

Location: Москва

PostPosted: Thu Sep 07, 2006 9:11 pm (спустя 1 день 11 часов 25 минут; написано за 12 минут 32 секунды)
   Post subject:
Reply with quote

Дмитрий, у меня такой вопрос/предложение по поводу использования
Code (php): скопировать код в буфер обмена
$forest = $DB->selectPage(
  $totalRows,
  'SELECT
    messageID AS ARRAY_KEY,
    parentID  AS PARENT_KEY,
    *
  FROM message LIMIT ?, ?'
,
  $from, 5
);
Здесь у меня выбираются сообщения из гостевой книги. Допустим я хочу, чтобы на странице отображалось пять сообщений вместе с ответами на них. Т.е. не важно сколько ответов и есть ли они вообще, результат примерно такой
Code (any language): скопировать код в буфер обмена
Всли воспользоваться Вашей функцией selectPage, то в результате получим пять сообщений (с учетом ответов). Как сделать такое руками в несколько проходов, я знаю. Но хотелось бы чтобы в библиотеке тоже была такая возможность.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Thu Sep 07, 2006 10:59 pm (спустя 1 час 48 минут; написано за 54 секунды)
   Post subject:
Reply with quote

Нельзя это сделать средствами SQL за 1 запрос (можно только за 2). А библиотека - просто более удобный интерфейс к SQL, у нее не большая и не меньшая мощность. Запросы она самостоятельно не составляет.
Back to top
View user's profile Send private message Send e-mail
Иван Шумков
Участник форума



Joined: 30 Dec 2004
Posts: 229
Карма: 6
   поощрить/наказать

Location: Россия, Санкт-Петербург

PostPosted: Fri Sep 08, 2006 2:37 pm (спустя 15 часов 37 минут; написано за 1 минуту 21 секунду)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
selectPage
Често говоря не совсем понимаю смысл selectPage. Перед тем как выполнить запрос нам надо уже знать общее количество строк чтобы правильно вычеслить лимит и офсет. По любому приходится делать два запроса. Или может я чего-то не понимаю?
Back to top
View user's profile Send private message
SerB
Заглянувший



Joined: 10 Mar 2006
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Fri Sep 08, 2006 3:35 pm (спустя 58 минут; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

Скачал последнюю версию Dbsimple, в версии которая со страницы Dbsimple было так:
Code (php): скопировать код в буфер обмена
//
require_once "DbSimple/DSN.php";
//
$DATABASE = DbSimple_DSN::connect("mysql://:@/");
//
$DB = $DATABASE->transaction();
А теперь как надо? Заранее спасибо!
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Fri Sep 08, 2006 3:40 pm (спустя 5 минут; написано за 7 секунд)
   Post subject:
Reply with quote

Иван Шумков
в MySQL:
количество записей на страницу обычно зашито в код или приходит из запроса. Смещение знать не нужно - оно приходит из запроса и если выйдет за границы, то будет всего лишь пустая выборка.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Fri Sep 08, 2006 10:21 pm (спустя 6 часов 40 минут; написано за 2 минуты 22 секунды)
   Post subject:
Reply with quote

SerB
$DB = DbSimple_Generic::connect($dsn);

Теперь в одном коннекте в единицу времени может существовать только одна транзакция. Т.е. и коннект, и транзакция - одно и то же ($DB). Оказалось, это стандартное поведение для всех СУБД, поддерживаемых PHP, за исключением FireBird (в котором в рамках одного коннекта может существовать несколько транзакций одновременно).

Если нужно явно начать транзакцию с другими параметрами (если они поддерживаются PHP), используйте

$DB->transaction(...);
$DB->commit();
$DB->rollback();
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Fri Sep 08, 2006 10:51 pm (спустя 30 минут; написано за 18 секунд)
   Post subject:
Reply with quote

Скажите, пожалуйста, где скачать версию 2?
Спасибо.
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Sat Sep 09, 2006 1:03 am (спустя 2 часа 11 минут; написано за 52 секунды)
   Post subject:
Reply with quote

Конструкция 'AS ARRAY_KEY' в запросе к MySQL только у меня не работает или функционал ещё не реализован?
@version 2.01;
Back to top
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Sat Sep 09, 2006 10:13 am (спустя 9 часов 9 минут; написано за 25 секунд)
   Post subject:
Reply with quote

Гость, на просторах этого топика.
Гость, должна работать. Как правильно задавать вопросы: статья, обязательная к прочтению (citforum.ru/howto/smart-questions-ru.shtml)
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Sat Sep 09, 2006 12:54 pm (спустя 2 часа 40 минут; написано за 32 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
$DB->transaction(...);
$DB->commit();
$DB->rollback();
Не очень ООПешно.
Back to top
Евгений Александрович
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Sep 09, 2006 9:20 pm (спустя 8 часов 26 минут; написано за 1 минуту 9 секунд)
   Post subject:
Reply with quote

Позвольте задать вопрос по версии 1. При записи в БД кавычки (") экранируются тремя слешами. Скажите, пожалуйста, как этого избежать?


Спасибо.
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Sun Sep 10, 2006 1:06 am (спустя 3 часа 46 минут; написано за 2 минуты 40 секунд)
   Post subject:
Reply with quote

Ошибку локализовал:
запрос вида 'SELECT login AS ARRAY_KEY, status, pass, info FROM users' отрабатывает правильно,
а -- 'SELECT login AS ARRAY_KEY, * FROM users'(взял из статьи) возвращает ошибку "error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM users'". Вероятно мускул(4.1.8) не поддерживает.
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Sun Sep 10, 2006 11:45 am (спустя 10 часов 38 минут; написано за 1 минуту 14 секунд)
   Post subject:
Reply with quote

Гость
пишите так:
Code (SQL): скопировать код в буфер обмена
SELECT u.login AS ARRAY_KEY, u.* FROM users AS u
Источник проблемы - * и явно указанный столбец
Back to top
View user's profile Send private message
OldFornit
Заглянувший



Joined: 11 Sep 2006
Posts: 4
Карма: 0
   поощрить/наказать


PostPosted: Mon Sep 11, 2006 4:28 pm (спустя 1 день 4 часа 42 минуты; написано за 5 минут 22 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
SerB
$DB = DbSimple_Generic::connect($dsn);

Теперь в одном коннекте в единицу времени может существовать только одна транзакция. Т.е. и коннект, и транзакция - одно и то же ($DB). Оказалось, это стандартное поведение для всех СУБД, поддерживаемых PHP, за исключением FireBird (в котором в рамках одного коннекта может существовать несколько транзакций одновременно).
Добрый день. Сделал следующее -
Code (php): скопировать код в буфер обмена
require_once "lib/config.php";
require_once "DbSimple/Generic.php";
// заполнил логин пасс и прочее
$dsn="mysql://$login:$pass@$host/$base";
$DB = DbSimple_Generic::connect($dsn);
В итоге выдает
Code (any language): скопировать код в буфер обмена
Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/journal/lib/DbSimple/Generic.php on line 87

Strict Standards: Non-static method DbSimple_Generic::connect() should not be called statically in /var/www/journal/personal.php on line 11

Strict Standards: Non-static method DbSimple_Generic::parseDSN() should not be called statically in /var/www/journal/lib/DbSimple/Generic.php on line 82

Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/journal/lib/DbSimple/Mysql.php on line 63

Strict Standards: Declaration of DbSimple_Mysql::_performEscape() should be compatible with that of DbSimple_Generic_Database::_performEscape() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Declaration of DbSimple_Mysql::_performNewBlob() should be compatible with that of DbSimple_Generic_Database::_performNewBlob() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Declaration of DbSimple_Mysql::_performTransaction() should be compatible with that of DbSimple_Generic_Database::_performTransaction() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Non-static method DbSimple_Generic::parseDSN() should not be called statically, assuming $this from incompatible context in /var/www/journal/lib/DbSimple/Mysql.php on line 32
При попытке выполнить запрос вроде такого -
Code (php): скопировать код в буфер обмена
$table='personal';
$rows = $DB->select('SELECT * FROM `?`',$table);
(самое простенькое, в чем невозможно ошибиться)

возращается NULL

В php.ini стоит error_reporting = E_ALL & ~E_NOTICE | E_STRICT
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Sep 11, 2006 6:32 pm (спустя 2 часа 4 минуты; написано за 57 секунд)
   Post subject:
Reply with quote

OldFornit wrote:
самое простенькое, в чем невозможно ошибиться
А вот Вам удалось. Еще раз посмотрите примеры из статьи (особенно - идентификаторный плейсхолдер)
Back to top
View user's profile Send private message
OldFornit
Заглянувший



Joined: 11 Sep 2006
Posts: 4
Карма: 0
   поощрить/наказать


PostPosted: Mon Sep 11, 2006 7:50 pm (спустя 1 час 17 минут; написано за 3 минуты 12 секунд)
   Post subject:
Reply with quote

Maus wrote:
OldFornit wrote:
самое простенькое, в чем невозможно ошибиться
А вот Вам удалось. Еще раз посмотрите примеры из статьи (особенно - идентификаторный плейсхолдер)
Ну что ВЫ, сударь... Вариант с
Code (php): скопировать код в буфер обмена
$rows = $DB->select('SELECT * FROM `personal`');
дал абсолютно аналогичные результаты. Но завтра в офисе на всякий случай перепроверю.
Собственно, весь день был убит на попытки разобраться со всем этим делом.
В итоге был сделан вывод - ай эм ламер )). и жутко захотелось нормальной документации.
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Sep 12, 2006 2:24 am (спустя 6 часов 34 минуты; написано за 54 секунды)
   Post subject:
Reply with quote

OldFornit насколько я понимаю проблема в кавычках, нужно так:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM ?
Back to top
OldFornit
Заглянувший



Joined: 11 Sep 2006
Posts: 4
Карма: 0
   поощрить/наказать


PostPosted: Tue Sep 12, 2006 8:49 am (спустя 6 часов 25 минут; написано за 3 минуты 52 секунды)
   Post subject:
Reply with quote

Anonymous wrote:
OldFornit насколько я понимаю проблема в кавычках, нужно так:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM ?
Спасибо, но преблема все-таки не в этом.
Может, у меня и кривые руки, но не могу понять - почему при обычном подключении этого класса и привязке к БД выходит такое -
Code (php): скопировать код в буфер обмена
require_once "lib/config.php";
require_once "DbSimple/Generic.php";
$dsn="mysql://user:user@localhost/journal";
$DB = DbSimple_Generic::connect($dsn);
Code (any language): скопировать код в буфер обмена
Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/journal/lib/DbSimple/Generic.php on line 87

Strict Standards: Non-static method DbSimple_Generic::connect() should not be called statically in /var/www/journal/personal.php on line 11

Strict Standards: Non-static method DbSimple_Generic::parseDSN() should not be called statically in /var/www/journal/lib/DbSimple/Generic.php on line 82

Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/journal/lib/DbSimple/Mysql.php on line 63

Strict Standards: Declaration of DbSimple_Mysql::_performEscape() should be compatible with that of DbSimple_Generic_Database::_performEscape() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Declaration of DbSimple_Mysql::_performNewBlob() should be compatible with that of DbSimple_Generic_Database::_performNewBlob() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Declaration of DbSimple_Mysql::_performTransaction() should be compatible with that of DbSimple_Generic_Database::_performTransaction() in /var/www/journal/lib/DbSimple/Mysql.php on line 177

Strict Standards: Non-static method DbSimple_Generic::parseDSN() should not be called statically, assuming $this from incompatible context in /var/www/journal/lib/DbSimple/Mysql.php on line 32
Заметьте -
1) файл, в котором это все подключается, находится в корне сайта
2) класс DbSimple находится по такому пути - lib/DbSimple (от корня сайта)
3) используется самая свежая версия класса, которую смог найти в пределах этого топика.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 12, 2006 3:17 pm (спустя 6 часов 27 минут; написано за 1 минуту 44 секунды)
   Post subject:
Reply with quote

Гость
Так тодже неверно. Нужно так:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM ?#
 
OldFornit
Библиотека написана под PHP4, а у Вас пятёрка. В приведённых Вами сообщениях нет ни одного, свидетельствующего о неправильной работе библиотеки
Back to top
View user's profile Send private message
OldFornit
Заглянувший



Joined: 11 Sep 2006
Posts: 4
Карма: 0
   поощрить/наказать


PostPosted: Tue Sep 12, 2006 3:53 pm (спустя 36 минут; написано за 2 минуты 23 секунды)
   Post subject:
Reply with quote

Maus wrote:
Библиотека написана под PHP4, а у Вас пятёрка. В приведённых Вами сообщениях нет ни одного, свидетельствующего о неправильной работе библиотеки
Спасибо, понял.
Ну что ж, вынужден отказаться от библиотекию
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Tue Sep 12, 2006 10:27 pm (спустя 6 часов 33 минуты)
   Post subject:
Reply with quote

Да нет, просто поставьте режим отображения ошибок не такой жестокий, например просто E_ALL
Back to top
View user's profile Send private message Send e-mail
Иван Шумков
Участник форума



Joined: 30 Dec 2004
Posts: 229
Карма: 6
   поощрить/наказать

Location: Россия, Санкт-Петербург

PostPosted: Mon Sep 18, 2006 5:44 pm (спустя 5 дней 19 часов 16 минут; написано за 27 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров
Расскажите как перевести библиотеку в продакшен режим.
Back to top
View user's profile Send private message
Иван Шумков
Участник форума



Joined: 30 Dec 2004
Posts: 229
Карма: 6
   поощрить/наказать

Location: Россия, Санкт-Петербург

PostPosted: Mon Sep 18, 2006 6:05 pm (спустя 21 минуту; написано за 35 секунд)
   Post subject:
Reply with quote

Ага, вижу. Просто не устанавливаем логгер.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Mon Sep 18, 2006 7:15 pm (спустя 1 час 9 минут; написано за 1 минуту 39 секунд)
   Post subject:
Reply with quote

Anton Makarenko wrote:
> Здравствуйте, Дмитрий.
> Насколько мне известно, Вы готовите к выпуску DbSimple 2.
> Готов помочь (или самостоятельно) написать по ней мануал,
> лишь бы быстрее релиза дождаться.
> Антон.

> p.s. Написал наугад на этот ящик, потому что
> Дмитрий Котеров (E-mail) (forum.dklab.ru/users/DmitryKoterov/email/) не работает.
Это не ящик не работает. Это я временно не работаю. :-)

Сейчас у меня несколько другой приоритет - причесывание
HTML_MetaForm и перевод его с беты на релиз. DbSimple - на втором
месте, т.к. это, по моему мнению, менее важная и новая штука.

Для DbSimple главная проблема - автоматизация процесса
тестирования. Все сильно усложняет тот факт, что необходимо будет
у себя ставить и настраивать все-все базы, на работу с которыми
рассчитана библиотека (хотя бы, по крайней мере, FB, PG, MySQL и
SQLite). Не совсем ясно пока, как автоматическая система тестов
будет это разруливать.

Я сейчас с системой автоматического тестирования разбираюсь на
примере HTML_MetaForm. Собственно, это стандартный PEAR_RunTest,
но к нему надо попривыкнуть.

А почему Вы так хотите поскорее дождаться релиза? Та версия, что
в форуме, должна быть вполне работоспособной.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Sep 18, 2006 8:59 pm (спустя 1 час 43 минуты; написано за 13 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
это стандартный PEAR_RunTest
а почему не PHPUnit ?
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Mon Sep 18, 2006 10:30 pm (спустя 1 час 31 минуту; написано за 22 секунды)
   Post subject:
Reply with quote

И не SimpleTest?
Back to top
View user's profile Send private message
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 31
   поощрить/наказать

Location: Киев

PostPosted: Tue Sep 19, 2006 9:20 am (спустя 10 часов 49 минут; написано за 5 минут 33 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
А почему Вы так хотите поскорее дождаться релиза?
Потому что в новой версии поддерживаются "шаблоны" запросов. В частности, используя первую версию, приходится отвлекаться от бизнес-логики приложения, заморачиваясь на алгоритме составления запроса как такого -- имеются в виду составные запросы, которые выходят за рамки просто плейсхолдеров.
Еще с первой версией часто приходится трансформировать массив-выборку в массив вида id=>array(...), что тоже умеет DbSimple2.
Back to top
View user's profile Send private message Send e-mail
Иван Шумков
Участник форума



Joined: 30 Dec 2004
Posts: 229
Карма: 6
   поощрить/наказать

Location: Россия, Санкт-Петербург

PostPosted: Tue Sep 19, 2006 11:32 am (спустя 2 часа 11 минут; написано за 11 секунд)
   Post subject:
Reply with quote

Антон Макаренко wrote:
Еще с первой версией часто приходится трансформировать массив-выборку в массив вида id=>array(...), что тоже умеет DbSimple2.
Можно примерчик?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Tue Sep 19, 2006 5:12 pm (спустя 5 часов 40 минут; написано за 2 минуты 25 секунд)
   Post subject:
Reply with quote

Maus wrote:
а почему не PHPUnit ?
WingedFox wrote:
И не SimpleTest?
Я их смотрел, но, по-моему, они излишне сложны и перегружены. Короче, плохо подходят для целей тестирования выложенных в Конструкторе библиотке.
Впрочем, данная тема здесь - оффтопик, прошу не продолжать ее здесь.
Антон Макаренко wrote:
Потому что в новой версии поддерживаются "шаблоны" запросов
Нет, Вы не поняли вопроса. Зачем Вам релиз, если можно взять актуальную версию прямо отсюда, из топика, и с ней уже работать? Там поддерживаются шаблоны запросов, и интерфейс в релизе меняться не будет.
Антон Макаренко wrote:
Еще с первой версией часто приходится трансформировать массив-выборку в массив вида id=>array(...), что тоже умеет DbSimple2
Первая версия тоже это умеет вроде как.
Back to top
View user's profile Send private message Send e-mail
avger
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Sep 20, 2006 8:01 pm (спустя 1 день 2 часа 49 минут; написано за 7 минут 1 секунду)
   Post subject:
Reply with quote

Здравствуйте, Дмитрий, у меня к Вам вопрос. Вы нигде не описывали, как освобождать память после запроса, как, например, для MySQL существует функция
Code (php): скопировать код в буфер обмена
mysql_free_result (www.php.net/mysql_free_result)($res)
Поддерживается ли вообще какой-нибудь интерфейс для этого или нет? В исходниках я такой функции не нашел. Или она уже не используется? Спасибо.
Back to top
avgera
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Sep 20, 2006 8:02 pm (спустя 19 секунд; написано за 7 минут 1 секунду)
   Post subject:
Reply with quote

Здравствуйте, Дмитрий, у меня к Вам вопрос. Вы нигде не описывали, как освобождать память после запроса, как, например, для MySQL существует функция
Code (php): скопировать код в буфер обмена
mysql_free_result (www.php.net/mysql_free_result)($res)
Поддерживается ли вообще какой-нибудь интерфейс для этого или нет? В исходниках я такой функции не нашел. Или она уже не используется? Спасибо.
Back to top
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 31
   поощрить/наказать

Location: Киев

PostPosted: Thu Sep 21, 2006 10:56 am (спустя 14 часов 54 минуты; написано за 9 секунд)
   Post subject:
Reply with quote

Иван Шумков
Специально для Вас
Двухмерный массив превращается в array(значение_ключа=>array()) по ключу (forum.dklab.ru/php/heap/DvuhmerniyMassivPrevrashchaetsyaVArrayZnachenie_klyuchaGtArrayPoKlyuchu.html)
Back to top
View user's profile Send private message Send e-mail
Иван Шумков
Участник форума



Joined: 30 Dec 2004
Posts: 229
Карма: 6
   поощрить/наказать

Location: Россия, Санкт-Петербург

PostPosted: Thu Sep 21, 2006 11:05 am (спустя 8 минут; написано за 48 секунд)
   Post subject:
Reply with quote

Антон Макаренко
Спасибо.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Thu Sep 21, 2006 9:43 pm (спустя 10 часов 37 минут; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

avgera wrote:
Поддерживается ли вообще какой-нибудь интерфейс для этого или нет?
Нет, потому что:
- DbSimple предназначена концептуально для выполнения десятков запросов в скриптах, а не тысяч; память освобождать нет смысла;
- в PHP5 освобождение памяти производится автоматом.
Back to top
View user's profile Send private message Send e-mail
avgera
Заглянувший



Joined: 20 Sep 2006
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Fri Sep 22, 2006 11:58 am (спустя 14 часов 15 минут; написано за 3 минуты 12 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
avgera wrote:
Поддерживается ли вообще какой-нибудь интерфейс для этого или нет?
Нет, потому что:
- DbSimple предназначена концептуально для выполнения десятков запросов в скриптах, а не тысяч; память освобождать нет смысла;
- в PHP5 освобождение памяти производится автоматом.
А если, например, в одном запросе выбирается несколько записей с TEXT или BLOB полями? Они ведь хранятся в оперативной памяти, или я что-то не так понимаю? Спасибо.
Back to top
View user's profile Send private message
foxx
Участник форума



Joined: 16 Jul 2006
Posts: 60
Карма: 2
   поощрить/наказать

Location: Россия, Кемерово

PostPosted: Sun Sep 24, 2006 7:16 pm (спустя 2 дня 7 часов 17 минут; написано за 2 минуты 47 секунд)
   Post subject:
Reply with quote

Про DB Simple 2.
Люди! Как логгером к библиотеке приписать хакерконсоль? У DBS1 все было разжевано в этом плане и в рот положено, работало как надо - а тут... Прям в замешательстве...
Back to top
View user's profile Send private message
Satyrius
Участник форума



Joined: 28 Mar 2006
Posts: 110
Карма: 2
   поощрить/наказать

Location: Москва

PostPosted: Mon Sep 25, 2006 11:41 am (спустя 16 часов 25 минут; написано за 35 секунд)
   Post subject:
Reply with quote

foxx wrote:
Как логгером к библиотеке приписать хакерконсоль?
// Подключаем модуль консоли.
require_once "Debug/HackerConsole/Main.php";
// Создаем косоль.
new Debug_HackerConsole_Main(true);
// Логгер запросов MySQL основанный на "хакерской консоли".
function hackerConsoleLogger($db, $sql) {
    Debug_HackerConsole_Main::out($sql);
}

$db->setLogger('hackerConsoleLogger');
Back to top
View user's profile Send private message
foxx
Участник форума



Joined: 16 Jul 2006
Posts: 60
Карма: 2
   поощрить/наказать

Location: Россия, Кемерово

PostPosted: Mon Sep 25, 2006 2:25 pm (спустя 2 часа 43 минуты; написано за 32 секунды)
   Post subject:
Reply with quote

Satyrius, спасибо!
Back to top
View user's profile Send private message
flightsnormal
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Sep 26, 2006 11:22 pm (спустя 1 день 8 часов 57 минут; написано за 4 минуты 54 секунды)
   Post subject: null в массиве плейсхолдера
Reply with quote

Дмитрий, спасибо за "БД Просто"!
Понадобилось в плейсхолдере массива поиметь null
В версии @version 1.36 файла DBSimple/Abstract/Database.php
добавил одну строку, она решила проблему. Если в более поздних версиях null в плейсхолдере массива появился, то прошу прощения.
Если - нет был бы рад увидеть в новых версиях
Вот мои изменения (строка 174, метод _expandPlaceholdersCallback)
Code (php): скопировать код в буфер обмена
                foreach ($value as $k=>$v) {
                    [color=red]$v = (null === $v) ? 'NULL' : $this->escape($v);[/color]
                    if (!is_int (www.php.net/is_int)($k)) {
                        $k = $this->escape($k, true);
                        $parts[] = "$k=$v";
                    } else {
                        $parts[] = $v;
                    }
                }
Back to top
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
Page 7 of 10    Email to a Friend.
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML