Ale to nie ma nic wspólnego z programowaniem obiektowym. To, że zamknął w taki sposób obsługę bazy danych, nie znaczy, że to jest OOP. Ja bym tego DAO nie nazwał.
Autorowi wątku polecam zapoznanie się z podstawami obsługi baz danych - gdybyś wiedział o co chodzi, to byś dał sobie radę. Zanim zaczniesz pisać warstwę abstrakcji, opanuj to, co chcesz ukryć.
<?php
class DB {
public function __construct($host, $user, $password, $db) {
if (!$this->handle) {
throw new Exception();
}
}
public function query($query) {
}
public function fetchRow($resource) {
}
public function fetchAll($resource) {
while ($row = $this->fetchRow($resource)) {
$result[] = $row;
}
return $result;
}
//...
protected $handle;
}
?>
No i jeszcze przykład...
<?php
try {
$db = new DB('localhost', 'user', 'password', 'database_name');
} catch (Exception $e) {
die ('Nie można nawiązać połączenia z bazą danych.'); }
$result = $db->query('SELECT * FROM table');
$rows = $db->fetchAll($result);
foreach ($rows as $row) {
}
?>
Nie testowałem tego, pisane z głowy...