Есть несколько способов сделать это. Вот один из них:
Для начала вы можете получить объяснение, просто добавив «EXPLAIN» к оператору mysql. См. http://dev.mysql.com/doc/refman/5.0/en/explain.html для подробной информации о Mysql's explain
.
Зная, что вызовы Mysql, методы mysqli::query
и mysqli::prepare
оба принимают свой первый параметр в виде строки $query
(примечание стороны : просто используйте Reflection
класс в скрипте быстрого теста для получения текущего метода или создания прототипов. Вы обнаружите, что расширение класса mysqli_result
на самом деле невозможно, но здесь это не должно быть проблемой).
Зная это,
- Сохраните строку запроса mysql, используемую при вызове ваших расширенных методов, как новое свойство вашего расширенного класса `mysqli`
- Передать результаты возврата родительского метода как обычно.
- Создайте новый пользовательский метод для вызова этого строкового свойства с добавлением `объяснения` и запустите новый отдельный запрос для этого, используя любой родительский метод или общий вызов Mysqli. Этот новый метод будет вызываться каждый раз, когда вам нужно вывести объяснение запроса в представлении html