До это момента знакомство с PDO было на уровне стандартного драйвера, увидели как делать то, что старый драйвер и так умел, а теперь о возможностях за которые новый драйвер и завется новым.
И одна из таких возможностей это выдавать не масив вывода а объект вывода.
$db = new PDO(...);
$stm = $db->query("select * from test_table");
$obj = $stm->fetch(PDO::FETCH_OBJ);
и все, теперь объект $obj содержит нужные нам данные
echo $obj->id; // 1
echo $obj->name; // u00009_mymans
Главное обратите внимание как быстро и без лишних тело движений. Но пока не стоит раслабляться, потому что впереди еще один хук.
Что если нам не просто нужны данные ввиде класса. Создадим простой класс с одним методом.
class users{
public function getFullname(){
echo $this->firstname . ' ' . $this->lastname;
}
}
а теперь
$db = new PDO(...);
$stm = $db->query("select firstname, lastname from users ...");
$user = $stm->fetchObject('users');
а теперь
echo $user->getFullname();
Конечно такую операцию мог выполнить и mysql, версию по сложнее придумаете сами. Впрочем нам не обезательно вызывать метод, надо просто переписать немного класс
class users{
public $fullname;
function __construct(){
$this->fullname = $this->firstname . ' ' . $this->lastname;
}
}
и теперь не меняя блок кода с запросом
echo $user->$fullname;
Когда PDO создает экземпляр класса он автоматом вызывает конструктор который в свою очередь может обрабатывать переменные.