<? class DB { // Definicja klasy DB var $DB_HOST; // Host bazy danych MySQL var $DB_NAME; // Nazwa bazy danych MySQL var $DB_USER; // Nazwa użytkownika bazy danych MySQL var $DB_PASS; // Hasło użytkownika bazy danych MySQL var $DB_QUERY; // Treść zapytania MySQL var $DB_NUMROWS; // Ilość wierszy dla zapytania MySQL var $DB_FETCH_ARRAY; // Rezultat zapytania w postaci tablicy var $DB_ESCAPE_STRING; // Przetworzone zapytanie var $DB_RESULT; // Rezultat zapytania var $DB_FETCH_OBJECT; // Rezultat zapytania w postaci objektu function DB($DB_HOST, $DB_NAME, $DB_USER, $DB_PASS) { // Konstruktor $this->DB_HOST = $DB_HOST; // Zmienna zewnętrzna $this->DB_NAME = $DB_NAME; // Zmienna zewnętrzna $this->DB_USER = $DB_USER; // Zmienna zewnętrzna $this->DB_PASS = $DB_PASS; // Zmienna zewnętrzna $DB_USER, $DB_PASS) // Połączenie z bazą danych MySQL OR OR } function query($DB_QUERY) { // Wykonanie zapytania $this->DB_QUERY = $DB_QUERY; // Zmienna zewnętrzna OR . $DB_QUERY . \"-->\" return $this->DB_RESULT; } function escape_string($DB_ESCAPE_STRING) { // Lewe ukośniki $this->DB_ESCAPE_STRING = $DB_ESCAPE_STRING; // Zmienna zewnętrzna return $this->DB_ESCAPE_STRING; // Zwrócenie wartośći } function close() { // Zamknięcie połączenia OR } function fetch_array($DB_RESULT) { // Pobranie wyników do tablicy OR . $this->DB_QUERY . \"-->\" return $this->DB_FETCH_ARRAY; // Zwrócenie wartośći } function fetch_array_full($DB_RESULT) { // Pobranie wyników do tablicy wielowymiarowej while ($this->DB_FETCH_ARRAY_FULL[] = ) {} return $this->DB_FETCH_ARRAY_FULL; // Zwrócenie wartośći } function free_result($DB_RESULT) { // Wyczszczenie pamięci OR . $this->DB_QUERY . \"-->\" } function fetch_object($DB_RESULT) { // Pobranie wyników w postaci objektu OR . $this->DB_QUERY . \"-->\" return $this->DB_FETCH_OBJECT; // Zwrócenie wartości } function numrows($DB_RESULT) { // Iloć wierszy OR . $this->DB_QUERY . \"-->\" return $this->DB_NUMROWS; // Zwróć wartoć } } ?>
I aktualnie robię klasę do obsługi Interbase/Firebird. I moja praca stanęła przy ostatniej funkcji, a mianowicie numrows():
Mam schemat w postaci komentarza, czyli jak powinna wygądać ta funkcja, niestety jak wiem nie istnieje taka funkcja Ibase które by zwróciła ilość wierszy... Wie może ktoś jakby miała wyglądać funkcja numrows() w mojej klasie?? Stosując się do mojego sposobu zapisu funkcji??
<? class DB { // Definicja klasy DB var $DB_CONN; // Uchwyt Interbase/Firebird var $DB_HOST; // Host bazy danych Interbase/Firebird var $DB_NAME; // Nazwa bazy danych Interbase/Firebird var $DB_CSTR; // String łączący var $DB_USER; // Nazwa użytkownika bazy danych Interbase/Firebird var $DB_PASS; // Hasło użytkownika bazy danych Interbase/Firebird var $DB_QUERY; // Treść zapytania Interbase/Firebird var $DB_NUMROWS; // Ilość wierszy dla zapytania Interbase/Firebird var $DB_FETCH_ARRAY; // Rezultat zapytania w postaci tablicy var $DB_ESCAPE_STRING; // Przetworzone zapytanie var $DB_RESULT; // Rezultat zapytania var $DB_FETCH_OBJECT; // Rezultat zapytania w postaci objektu function DB($DB_HOST, $DB_NAME, $DB_USER, $DB_PASS) { // Konstruktor $this->DB_HOST = $DB_HOST; // Zmienna zewnętrzna $this->DB_NAME = $DB_NAME; // Zmienna zewnętrzna $this->DB_USER = $DB_USER; // Zmienna zewnętrzna $this->DB_PASS = $DB_PASS; // Zmienna zewnętrzna $this->DB_CSTR = $DB_HOST . \":\" . $DB_NAME . \".gdb\"; // Tworzenie stringa łączącego $this->DB_CONN = @ibase_connect($this->DB_CSTR, $DB_USER, $DB_PASS) // Połączenie z bazą danych OR . ibase_errmsg()); // Obsługa błędów return $this->DB_CONN; // Zwrócenie wartośći } function query($DB_QUERY) { // Wykonanie zapytania $this->DB_QUERY = $DB_QUERY; // Zmienna zewnętrzna $this->DB_RESULT = @ibase_query($this->DB_CONN, $DB_QUERY) // Wykonanie zapytania OR . $DB_QUERY . \"-->\" . ibase_errmsg()); // Obsługa błędów return $this->DB_RESULT; // Zwrócenie wartośći } function escape_string($DB_ESCAPE_STRING) { // Lewe ukośniki $this->DB_ESCAPE_STRING = $DB_ESCAPE_STRING; // Zmienna zewnętrzna return $this->DB_ESCAPE_STRING; // Zwrócenie wartośći } function close() { // Zamknięcie połączenia @ibase_close($this->DB_CONN) // Zamknięcie połączenia z bazą Interbase/Firebird OR . ibase_errmsg()); // Obsługa błędów } function fetch_array($DB_RESULT) { // Pobranie wyników do tablicy $this->DB_FETCH_ARRAY = @ibase_fetch_assoc($DB_RESULT) // Wykonanie tablicy OR . $this->DB_QUERY . \"-->\" . ibase_errmsg()); // Obsługa błędów return $this->DB_FETCH_ARRAY; // Zwrócenie wartośći } function fetch_array_full($DB_RESULT) { // Pobranie wyników do tablicy wielowymiarowej while ($this->DB_FETCH_ARRAY_FULL[] = @ibase_fetch_assoc($DB_RESULT) // Wykonanie tablicy wielowymiarowej ) {} return $this->DB_FETCH_ARRAY_FULL; // Zwrócenie wartośći } function free_result($DB_RESULT) { // Wyczyszczenie pamięci @ibase_free_result($DB_RESULT) // Wyczyszczenie pamięci (buforu) OR . $this->DB_QUERY . \"-->\" . ibase_errmsg()); // Obsługa błędów } function fetch_object($DB_RESULT) { // Pobranie wyników w postaci obiektu $this->DB_FETCH_OBJECT = @ibase_fetch_object($DB_RESULT) // Pobranie wyników OR . $this->DB_QUERY . \"-->\" . ibase_errmsg()); // Obsługa błędów return $this->DB_FETCH_OBJECT; // Zwrócenie wartości } /* function numrows($DB_RESULT) { // Ilość wierszy $this->DB_NUMROWS = @................... OR die(\"Nie można pobrać ilości wierszy: <!--\" . $this->DB_QUERY . \"-->\" . ibase_errmsg()); // Obsługa błędów return $this->DB_NUMROWS; // Zwrócenie wartośći } */ } ?>
Pozdro
alfanick
PS: To jest dość ważne dla mnie
