Как использовать соединение БД Codeigniter в не-CI классе - PullRequest
0 голосов
/ 26 января 2012

У меня есть класс php, который требует, чтобы экземпляр PDO был передан в его конструктор. Код будет примерно таким:

$pdo = new PDO($host, $username, $password);
$myclass = new myClass($pdo);

Проблема, которую я имею, заключается в интеграции этого с CI. CI автоматически загружает свой класс базы данных, который обрабатывает все соединения с БД и доступен с помощью

 $this->db->

Было бы очень просто, если бы мне удалось создать экземпляр myClass с объектом базы данных CI, но, похоже, он содержит гораздо больше материала, чем просто экземпляр PDO. Я пробовал

 $myClass = new myClass($this->db);

и ему это совсем не нравится. Я понимаю, что мог бы переписать myClass для прямого доступа к объекту CI db (т. Е. Без необходимости передавать ему новое соединение), но я действительно не хочу начинать это гигантское начинание!

Итак, есть ли способ использовать класс CI db для этой цели? Будет ли какая-то разница, если я просто создаю новый экземпляр PDO, как указано выше, если библиотека базы данных CI уже загружена?

1 Ответ

0 голосов
/ 26 января 2012

Нет простого способа получить текущее соединение PDO из класса базы данных CI. Тем не менее, вам не обязательно это нужно. Вы можете создать свое собственное соединение PDO и передать его в свой пользовательский класс. У вас будет два живых соединения с БД, что не идеально, но вы, вероятно, можете решить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...