Estoy intentando crear una biblioteca de consultas simple y estoy usando PDO para acceder a la base de datos.¿Se pueden mantener conexiones de PDO entre clases?
Digamos que tengo las dos clases siguientes:
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
}
}
es esta la forma correcta de utilizar la misma conexión PDO entre las clases? - Porque me parece estar teniendo algunos problemas con esto, por ejemplo, si var_dump
mi conexión de la segunda clase, me sale:
object(PDO)#2 (0) { }
Seguramente eso no es verdad?
También si corro una consulta de selección, y luego volcar la variable $sth
, acabo de llegar:
bool(true)
Es esto porque yo estoy manejando la conexión de forma incorrecta? - Si es así, ¿cómo puedo usar correctamente la misma conexión entre las clases?
Respondiendo a la pregunta del título: sí, pueden. – Tadeck
Sí, porque usted puede. Podrías haber guardado el tuyo y nuestro tiempo con solo intentarlo antes de preguntar. –
Um ... Mencioné en la pregunta que probé esto. Dije que no creía que funcionaba correctamente y me preguntaba si mi manejo de la conexión estaba causando –