【发布时间】:2012-02-20 14:00:32
【问题描述】:
我正在尝试创建一个简单的查询库,并且正在使用 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)
这是因为我处理连接不正确吗? - 如果是这样,我怎样才能在类之间正确使用相同的连接?
【问题讨论】:
-
从标题中回答问题:是的,他们可以。
-
当然可以。您可以在询问之前尝试一下,从而节省您和我们的时间。
-
嗯...我在问题中提到我已经尝试过这个。我说我不相信它工作正常,并想知道我对连接的处理是否导致它