Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Testowanie skryptu
Forum PHP.pl > Forum > PHP > Object-oriented programming
jestemPolakiem
Witam

Mam pytanie czy mógłby ktoś sprawdzić czy ten skrypt działa
Kod
<?php
/*     -----------------------------------
        S Q L
            D R I V E R
    -----------------------------------    */
//    Pełna Nazwa : JP SQLDriver 1.0.1
//    - Skrót        : SQLD / SD
//    - Wersja    : 1.0.1 (alpha)
//    - Edycja    : Standart
//    Autor        : jestemPolakiem
/*    -----------------------------------    */

// *definicje*
define('SQLDriver',     'JPSQLDRIVER101A',             true);
define('SQLUIP',        $_SERVER['REMOTE_ADDR'],    true);
define('SQLUPORT',        $_SERVER['REMOTE_PORT'],    true);

// *klasa*
    
    /*     WARUNEK (IF)
        Sprawdzanie, czy sterownik jest zdefiniowany i może zostać używany */
if (SQLDriver == 'JPSQLDRIVER101A') {
    
    /*    STRUTKURA (interface)
        Generowanie struktury przchowującej dane o połączeniu */
    interface I_SQLData {
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct($cData);
        
    /*    FUNKCJA (function)
        Generowanie funkcji, która pokazuje dane do połączenia */
        function getValue($cValue);

    }
    
    
    /*     STRUKTURA (interface)
        Generowanie struktury pod wszystkie sterowniki SQL */
    interface I_SQLDriver {
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct(I_SQLData $cData);
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która wybiera bazę danych */
        function selectDatabase($cDatabase);
    
    /*     FUNCKJA (function)
        Generowanie funkcji, która wysyła zapytanie do bazy danych */
        function getResult($cQuery);
        
    /*     FUNKCJA (function)
        Generowanie funkcji, która wykonuję zapytanie w bazie danych */
        function executeQuery($cQuery);
        
    /*     FUNKCJA (function)
        Generowanie funkcji niszczącej */
        function __deconstruct();
        
    }
    
    
    /*     KLASA (class)
        Generowanie klasy, która przechowuje dane do połączenia */
    class SQLData implements I_SQLData {
    
    /*    ZMIENNA (var)
        Generowanie zmiennej, która przechowuje wszystkie informacje */
        var $memory = array();
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct($cData) {
            
            if (!$cData) die('SQLDRIVER: Podane dane w linijce 72 są niepoprawne');
            $this -> memory['host']            = $cData['host'];
            $this -> memory['user']            = $cData['user'];
            $this -> memory['password']        = $cData['password'];
            $this -> memory['database']        = $cData['database'];
            $this -> memory['sqlite']        = $cData['sqlite'];
            if ($memory == array()) die ('SQLDRIVER: Podane dane w linijce 72 są nie poprawne');
            return true;
        }
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która pokazuje dane do połączenia */
        function getValue($cValue) {
        
            if (!$cValue) die('SQLDRIVER: Podane dane w linijce 90 są niepoprawne');
            if (!$this -> memory[$cValue]) die('SQLDRIVER: Podane dane w linijce 90 nie istnieją');
            return $this -> memory[$cValue];
        }
    
    }
    
    
    /*    KLASA (class)
        Generowanie klasy, która jest odpowiedzą bazy danych */
    class SQLQuery {
    
    /*    ZMIENNA (var)
        Generowanie zmiennej, która przechowuje wszystkie informacje */
        var $memory = array();
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct($cResult) {
        
            if (!$cResult) die('SQLDRIVER: Nieprawidłowe pytanie - brak odpowiedzi od bazy danych');
            while ($sArray = mysql_fetch_array($cResult)) {
                $this -> memory[]         = $sArray;
            }
            return true;
        }
    
    /*    FUNCKJA (function)
        Generowanie funkcji, która wzraca ile rekordów spełnia pytanie */
        function getCount() {
            
            $sCount = 0;
            foreach ($this -> memory as $sForeach) $sCount++;
            return $sCount;
        }
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która rozdziela wszystkie rekordy */
        function separateResult($cID) {
        
            if (!$cID) die('SQLDRIVER: Podane dane w linijce 130 są niepoprawne');
            return $this -> memory[$cID];
        }
        
    /*    FUNKCJA (function)
        Generowanie funkcji, która odbiera ID rekordu */
        function getID() {
        
            return $this -> memory['id'];
        }
        
    /*    FUNKCJA (function)
        Generowanie funkcji, która odbiera dane w formie liczby */
        function getDataInt($cValue) {
        
            return (int) $this -> memory[$cValue];
        }
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która odbiera dane w formie tekstu */
        function getDataString($cValue) {
        
            return (string) $this -> memory[$cValue];
        }
    
    }
    
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która ustala główne parametry połączenia */
    function newSQLDriver($cSQLType, I_SQLData $SQLData) {
        
        switch ($cSQLType) {
            case "mysql":
                return new MySQLDriver($SQLData);
                break;
            case "sqlite":
                return new SQLiteDriver($SQLData);
                break;
        }
        return false;
    }
    
    
    /*    KLASA (class)
        Generowanie klasy, która obsługuję MySQL */
    class SQLDriver implements I_SQLDriver {
        
    /*    ZMIENNA (var)
        Generowanie zmiennej, która przechowuje uchwyt do połączenia */
        var $hSQL = null;
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct(I_SQLData $cData) {
            
            if (!$cData) die('SQLDRIVER: Podane dane w linijce 182 są niepoprawne');
            $this -> hSQL = mysql_connect($cData -> getValue('host'), $cData -> getValue('user'), $cData -> getValue('password'));
            if (!$this -> hSQL) die ('SQLDRIVER: Połączenie z bazą MySQL ('.$cData -> getValue('host').') nie powiodło się');
            if ($cData -> getValue('database')) selectDatabase($cData -> getValue('database'));
            return true;
        }
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która wybiera bazę danych */
        function selectDatabase($cDatabase) {
        
            if (!mysql_select_db($cDatabase)) die('SQLDRIVER: Połączenie z bazą ('.$cDatabase.') nie powiodło się');
            return true;
        }
    
    /*     FUNCKJA (function)
        Generowanie funkcji, która wysyła zapytanie do bazy danych */
        function getResult($cQuery) {
            
            if (!$cQuery) die('SQLDRIVER: Podane dane w linijce 205 nie istnieją');
            return new SQLQuery(mysql_query($cQuery));
        }
        
    /*     FUNKCJA (function)
        Generowanie funkcji, która wykonuję zapytanie w bazie danych */
        function executeQuery($cQuery) {
        
            if (!mysql_query($cQuery)) die('SQLDRIVER: Nieprawidłowe pytanie - brak odpowiedzi od bazy danych');
            return true;
        }
        
    /*     FUNKCJA (function)
        Generowanie funkcji niszczącej */
        function __deconstruct() {
        
            mysql_close($this -> hSQL);
            return true;
        }
    
    }
    
    
        /*    KLASA (class)
        Generowanie klasy, która obsługuję SQLite */
    class SQLDriver implements I_SQLDriver {
        
    /*    ZMIENNA (var)
        Generowanie zmiennej, która przechowuje uchwyt do połączenia */
        var $hSQL = null;
        
    /*    FUNKCJA (function)
        Generowanie funkcji budulcowej */
        function __construct(I_SQLData $cData) {
            
            return true;
        }
    
    /*    FUNKCJA (function)
        Generowanie funkcji, która wybiera bazę danych */
        function selectDatabase($cDatabase) {
    ;
            return true;
        }
    
    /*     FUNCKJA (function)
        Generowanie funkcji, która wysyła zapytanie do bazy danych */
        function getResult($cQuery) {
            
            return new SQLQuery(mysql_query($cQuery));
        }
        
    /*     FUNKCJA (function)
        Generowanie funkcji, która wykonuję zapytanie w bazie danych */
        function executeQuery($cQuery) {
        
            return true;
        }
        
    /*     FUNKCJA (function)
        Generowanie funkcji niszczącej */
        function __deconstruct() {
        
            return true;
        }
    
    }
}

?>


Z góry dziękuje smile.gif
mls
Nie, nie działa. I piszę to tylko i wyłącznie po spojrzeniu na powyższy "kod". Po pierwsze, co to w ogóle za prośba? Samemu sprawdzić nie łaska? Po drugie, ewidentnie widać w kodzie błędy (jak i, z pełnym szacunkiem, głupotę, np. zwracanie "błędów" z numerami linijek ustawionymi "na sztywno"). Po trzecie... co to jest __deconstruct? :|
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.