Решение взято из комментария, поэтому я не могу принять ответ, чтобы закрыть его. Но я опубликовал фактическое решение, которое работает для меня ниже
Я новичок в ООП и просто не могу понять, даже прочитав несколько примеров, как использовать одно и то же соединение mysql без использования $GLOBALS.
Если бы кто-то мог объяснить это, как будто я двухлетний ребенок, это было бы очень полезно.
Это мой файл подключения.
$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);
Это, конечно, вернет то, что я ищу $thing с идентификатором 12. Но как мне это сделать без 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);
Спасибо. надеюсь, это поможет кому-то другому.
$dbh
, пройти через__constructor
подробнее Dependecy Injection - person cske   schedule 24.04.2015