Расширить класс MySQLi для ОБЪЯСНЕНИЯ SQL-запросов на странице - PullRequest
0 голосов
/ 27 июня 2011

как я могу расширить класс MySQLi, чтобы объяснить все запросы SQL на данной странице?

Спасибо.

1 Ответ

2 голосов
/ 27 июня 2011

Есть несколько способов сделать это. Вот один из них:

Для начала вы можете получить объяснение, просто добавив «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 на самом деле невозможно, но здесь это не должно быть проблемой).

Зная это,

  1. Сохраните строку запроса mysql, используемую при вызове ваших расширенных методов, как новое свойство вашего расширенного класса `mysqli`
  2. Передать результаты возврата родительского метода как обычно.
  3. Создайте новый пользовательский метод для вызова этого строкового свойства с добавлением `объяснения` и запустите новый отдельный запрос для этого, используя любой родительский метод или общий вызов Mysqli. Этот новый метод будет вызываться каждый раз, когда вам нужно вывести объяснение запроса в представлении html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...