<分区>
解决方案取自评论,所以我不能接受关闭此问题的答案。但我确实在下面发布了对我有用的实际解决方案
我是 OOP 的新手,即使阅读了相当多的示例,我还是想不通如何在不使用 $GLOBALS 的情况下使用相同的 mysql 连接。
如果有人能像我两岁的 child 一样解释它,那将非常有帮助。
这是我的连接文件。
$hostname = 'hostname';
$username = 'db';
$password = 'password';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=db", $username, $password);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
但是为了在类或函数中使用它,我这样做:
class basic {
function simple($id) {
$query = $GLOBALS['dbh']->query("SELECT * FROM table WHERE id = $id");
$row = $query->fetch(PDO::FETCH_OBJ);
$thing = $row->partoftable;
echo $thing;
}
}
$first = new basic();
$first->simple(12);
这当然会返回我正在寻找 ID 为 12 的 $thing 的内容。但是如果没有 GLOBALS['dbh'] 连接到数据库,我该怎么做呢?
也可以随意撕开其他任何东西,但请记住,这是我所说的最简单的例子。
提前致谢。
根据下面的评论,这是适合我的解决方案。
class basic {
function __construct($dbh)
{
$this->dbh = $dbh;
}
function simple($id) {
$query = $this->dbh->query("SELECT * FROM table WHERE id = $id");
$row = $query->fetch(PDO::FETCH_OBJ);
$thing = $row->partoftable;
echo $thing;
}
}
$first = new basic($dbh);
$first->simple(12);
谢谢。希望这可以帮助别人。