Да. У ceejayoz есть хорошая точка зрения, но для меня, кроме фильтрации и очистки данных, PDO
может фактически внедрить полученные наборы данных в полноценные объекты.
Я узнал об этом некоторое время назад от этого удивительного SO сообщения .
Ради примера кода я вставлю сюда код e-assign, поскольку у меня нет такого примера кода, который можно опубликовать, но поверьте, я много раз заимствовал эту концепцию:
class Student {
public $id;
public $first_name;
public $last_name
public function getFullName() {
return $this->first_name.' '.$this->last_name
}
}
try
{
$dbh = new PDO("mysql:host=$hostname;dbname=school", $username, $password)
$stmt = $dbh->query("SELECT * FROM students");
/* MAGIC HAPPENS HERE */
$stmt->setFetchMode(PDO::FETCH_INTO, new Student);
foreach($stmt as $student)
{
echo $student->getFullName().'<br />';
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Не то, чтобы я был ZF любовником, но Zend Framework на самом деле довольно удивительно использует PDO в своей абстракции. Посмотрите на классы, связанные с ZEND_DB_, чтобы увидеть, насколько мощным может быть PDO при использовании в сочетании с достойной библиотекой.
В качестве бонуса большинство, если не все классы этой платформы, работают автономно или в виде модульных компонентов. Я сам использовал многие из них в небольших проектах, их библиотеки на самом деле довольно просты в использовании и хорошо документированы, а также очень испытаны и протестированы во многих средах.
Удачного кодирования!