Я пытаюсь передать значения, собранные из PDO в объекте Datamanager, в объект User.
- Пользовательский объект изначально вызывается с запросом на получение пользователя с идентификатором.
- Пользователь создает соединение с менеджером данных в конструкции.
- Конструкция datamanager вызывает соединение PDO.
- Запуск пользовательского выбора создает запрос к преформе в базе данных.
- Затем запрос передается менеджеру данных, который обрабатывает запрос и возвращает результаты.
- Этот результат должен быть передан / установлен для объекта пользователя.
Я не уверен, что это неправильный шаг 5 или 6.
class Datamanager {
public function __construct() {
try {
$this->dbh = new PDO("mysql:host=$this->hostName;dbname=$this->dbName", $this->dbUser, $this->dbPassword);
} catch(PDOException $e) {
echo $e->getMessage();
}
}
public function runQuery($query, $obj){
try {
$STH = $this->dbh->query($query);
$STH->setFetchMode(PDO::FETCH_INTO, $obj);
} catch(PDOException $e) {
echo $e->getMessage();
}
return($obj);
}
class User {
public $user_id;
public $user_name;
public $user_password;
public $session_id;
private $dbc;
public function __construct() {
$this->dbc = new Datamanager();
}
function selectUser ($userID, $obj) {
$query = 'SELECT user_id, user_name, user_password, session_id FROM users';
$results = $this->dbc->runQuery($query, $this);
}
$userID = "1";
$test = new User;
$test->selectUser($userID, $test);
Я запускаю первоначальную настройку пользователя, затем пытаюсь загрузить ее со значениями, полученными в диспетчере данных. Я понимаю, что PDO - это сам объект, но я все еще пытаюсь создать общее взаимодействие, потому что этот код будет расширен, чтобы позволить более чем пользовательскому объекту получать доступ к базе данных.