Я хочу сохранить значения массива как свойства объекта. Я следую примеру для MySQL, но я хочу использовать PDO вместо этого.
У меня есть класс пользователя:
class User {
public $id;
public $username;
public $password;
public $first_name;
public $last_name;
public static function find_all_users(){
global $database;
$result_set = $database->query($sql);
return $result_set;
} //end method
} //end User class
Я подключился к своей базе данных, используя следующий класс базы данных.
Примечание: константы DB_SERVER и т. Д. Определены в другом месте и включены в файл
class Database{
public $connection;
function __construct(){
$this->open_db_connection();
}//end of constructor
public function open_db_connection(){
try{
$this->connection = new PDO('mysql:host='. DB_SERVER .';dbname='. DB_NAME, DB_USER, DB_PASSWORD);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo 'Server Error: ' . $e->getCode(;
}//end catch block
}//end of method
public function query($sql){
$stmt = $this->connection->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
} //end query method
$database = new Database();
Я хочу создать объект из класса User и использовать свойства этого класса для доступа к моим данным.
$user = new User();
$user->id = $result_set['id'];
$user->username = $result_set['username'];
$user->password = $result_set['password'];
$user->first_name = $result_set['first_name'];
$user->last_name = $result_set['last_name'];
echo $user->id;
В mysqli это будет выполнено с помощью следующего:
public static function find_all_users(){
global $database;
$result_set = $database->query($sql);
mysqli_fetch_array($result_set);
return $result_set;
} //end method
Я получаю ошибку
«Неопределенный индекс: id»
«Неопределенный индекс: имя пользователя»
«Неопределенный индекс: пароль»
«Неопределенный индекс: first_name»
«Неопределенный индекс: фамилия»
Я думаю, что моя ошибка от fetchAll (PDO :: FETCH_ASSOC). Я должен получить значение из моего эхо-заявления. echo $ user-> id;
Что является лучшим методом выборки, который работает аналогично mysqli_fetch_array для PDO?
Ниже, когда я печатаю_r $ result_set: