|
Правила •
Регистрация •
Справка Сообщения за день • Поиск |
|
|
|
Опции темы | Опции просмотра |
[исход]
![]() |
1) Ошибка в методе fetch_rowset() класса Database
Метод fetch_rowset() класса Database, используется в адаптации phpBB2 от SVL, однако в этом методе не работает кеширование результата запроса к BD. Исправление: в файле /class/database/mysql.php функцию fetch_rowset() это 460-484 строки в RUNCMS 1.6.2 PHP код:
PHP код:
Последний раз редактировалось LARK, 06-07-2009 в 23:27 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Напильникъ - наше все
![]() |
Т.е. вся правка сводится к замене вызова this->row на this->rowset?
Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник. |
||||
|
|
[исход]
![]() |
Да. Данный метод практически не используется, но тем кто будет оптимизировать phpBB2 и вводить кеширование запросов перед fetch_rowset(), придется делать или этот фикс или переписывать fetch_rowset на while с fetch_array/fetch_assoc
Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
[исход]
![]() |
Так же обнаружил, что кеширование запросов будет работать только если мы используем циклические конструкции.
Т.е. PHP код:
PHP код:
Это не совсем баг, просто недоработка механизма кеширования Последний раз редактировалось LARK, 06-07-2009 в 23:49 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
[исход]
![]() |
2) Ошибка некорректного удаления кеша в функции query() класса Database
Для функции query() можно задавать время жизни файла кеша с данными конкретного SQL-запроса (5-й аргумент). По истечении заданного времени файлы имеющие префикс заданный 4-м аргументом query(), должны удаляться. Однако удаляются все файлы кеша расположенные в /cache/sql/ Так как некоторые запросы кешируются на один час (вопрос - зачем?). То каждый час, весь кеш SQL-запросов сбрасывается. исправление (для RUNCMS 1.6.2): в файле /class/database/mysql.php находим функцию query() и меняем 160 строку PHP код:
PHP код:
Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
): ǝҺɐни dиw ɐн иd⊥оwɔ
![]() |
Это применимо к 1.4 ?
Напильник для RUNCMS Строим помаленьку Для гурманов Мебель для дома |
||||
|
|
[исход]
![]() |
Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
[исход]
![]() |
Тут подумалось, что имеет смысл сделать чуть по другому:
меняем 160 строку на PHP код:
Последний раз редактировалось LARK, 06-08-2009 в 23:55 Причина: Со строкой ошибся Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Напильникъ - наше все
![]() |
На всякий случай - в RunCMS 1.6.1 требуемая строка - номер 161
![]() Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник. |
||||
|
|
|
|
|
![]() |
Powered by: vBulletin Version 3.0 Copyright ©2000-2025, Jelsoft Enterprises Ltd. |
Все разделы прочитаны - Руководство форума - Архив - Вверх |