Witam!
Jestem w trakcie tworzenia obiektowego skryptu w php5. Zacząłem od własnego sterownika bazy danych. Napisałem taki kod:
<?php
class DBMySQL
{
private static $liczbaZapytan;
public function __construct()
{
self::$zapytan = 0;
self::$dbcon = FALSE;
}
public static function connect
($host, $user, $pswd) {
if (!self::$dbcon) {
throw new Exception('Nie udało się połączyć z bazą danych.');
}
return self::$dbcon;
}
public static function selectDb
($dbname) {
if (!self::$dbhandle) {
throw new Exception('Nie udało się wybrać bazy.');
}
return self::$dbhandle;
}
public static function query
($query) {
self::$liczbaZapytan++;
self::$query = $query;
}
public static function fetchArray
($result) {
self::$queryResult = $result;
return self::$temp;
}
public static function numRows
($result) {
self::$queryResult = $result;
}
public static function realEscapeString
($string) {
}
public static function startTransaction
() {
self::query('BEGIN');
}
public static function acceptTransaction
() {
self::query('COMMIT');
}
public static function rollbackTransaction
() {
self::query('ROLLBACK');
}
public static function returnQueries
() {
return $liczbaZapytan;
}
}
?>
W dwóch sytuacjach użyłem rzucania wyjątków w przypadku błedu (łączenie z bazą i wybieranie bazy). Chciałem też dać obsługe wyjątków do innych funkcji, np. query(), ale jakoś nie wyobrażam sobie później takiego wykonywania zapytań:
<?php
try {
DBMySQL::query("SELECT * FROM tabela");
} catch (Exception $e) {
}
?>
Jest jakiś sposób na rzucanie wyjątków, żeby nie trzeba było ich później za każdym razem obsługiwać w kodzie? I czy warto rzucać wyjątki w przypadku takiej funkcji jak query(), lub numRows()?
Ten post edytował zbig13 27.03.2006, 07:56:12