Я пытаюсь создать простую библиотеку запросов и использую PDO для доступа к базе данных.
Допустим, у меня есть два следующих класса:
class FirstClass {
var $dbh;
function __construct($host,$dbname,$user,$pw) {
$this->dbh = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pw);
}
function use_second($foo) {
return new SecondClass ($foo,$this->dbh);
}
}
class SecondClass {
function __construct($foo, $dbh) {
$sth = $dbh->prepare('SELECT * FROM atable WHERE bar = :foo');
$sth = $sth->execute(array('foo'=>$foo));
// do something with the query
}
}
Это правильный способ использовать одно и то же соединение PDO между классами? - Поскольку у меня, кажется, есть некоторые проблемы с этим, например, если я var_dump
подключусь ко второму классу, я получу:
object(PDO)#2 (0) { }
Конечно, это не так?
Также, если я запускаю запрос на выборку, а затем выкидываю переменную $sth
, я просто получаю:
bool(true)
Это потому, что я неправильно обрабатываю соединение? - Если так, как я могу правильно использовать одну и ту же связь между классами?