Я использую DBAL, как MDB2 , Zend_Db или Doctrine по аналогичной причине. Прежде всего, чтобы иметь возможность использовать все сочетания клавиш, которые он предлагает, не столько потому, что он поддерживает разные базы данных.
Например, старый:
<?php
$query = "SELECT * FROM table";
$result = mysql_query($query);
if (!$result) {
echo mysql_error();
} else {
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_obj($result)) {
...
}
}
}
?>
Versus (Zend_Db):
<?php
try {
$result = $db->fetchAll("SELECT * FROM table");
foreach($result as $row) {
...
}
} catch (Zend_Exception $e) {
echo $e->getMessage();
}
?>
ИМХО, более интуитивно понятен.