Wert aus Klasse prüfen?

ev0lst

Erfahrenes Mitglied
Hallo.

Ich habe eine Klasse in der eine SQL-Query ausgeführt werden soll.
Ansprechen tue ich das wie folgt:

PHP:
$db->query(....);

Jetzt wollte ich das ganze gerne prüfen lassen, da der "return-Wert" als "true" ausgegeben werden soll.

Leider bekomme ich aber keinen Rückgabewert aus der Klasse...

Kann mir da jemand helfen?
 
PHP:
$db->query(....);
So wie du es aufgeschrieben hast ist query ja eine Funktion.
Daher würde ich mal einen Blick in die Klasse werfen und schauen was die Funktion auslöst.
Wenn die Funktion nichts anderes ist als:
PHP:
public function query($query){
return mysql_query($query);
}
dann liefert sie dir bereits schon true bzw. false aus.
Also entweder einen Blick in die Klasse auf die Funktion werfen, oder Alternative:
PHP:
print "<pre>";
var_dump($db->query(...));
print "</pre>";
Dann bekommst du auch mal einen etwas besseren Einblick, ob ein Wert ausgeliefert wird.


Funktion Posten dann kann man auch mehr dazu sagen.
 
Zuletzt bearbeitet:
Super danke. Das Return vor die Query zu setzen kam mir natürlich nicht in den Kopf ;) Geht jetzt super, danke!

Frage: wofür war nochmal "public" function(...) genau?
Also das public...
 
Frage: wofür war nochmal "public" function(...) genau?
Also das public...
Auszug aus php.net
Die Sichtbarkeit einer Eigenschaft oder Methode kann definiert werden, indem man der Deklaration eines der Schlüsselwörter public, protected oder private voranstellt. Auf public deklarierte Elemente kann von überall her zugegriffen werden. Protected beschränkt den Zugang auf Vaterklassen und abgeleitete Klassen (sowie die Klasse die das Element definiert). Private grenzt die Sichtbarkeit einzig auf die Klasse ein, die das Element definiert.
 
Falls deine Datenbankklasse in PHP4 programmiert ist, existiert public, protected, private nicht.
Unter PHP4 sind alle Funktionen automatisch public.

Falls es jedoch PHP5 ist würde ich die funktion noch etwas erweitern.
Du bekommt momentan nur true und false zurück mehr nicht.
Mehr Informationen erhälst auf diese Art.
Hilft zumindest bei der Entwicklungsphase.
Zu aktiv Zeiten würde ich dann nicht print $error nutzen sondern eher alles in eine LogDatei schreiben.
PHP:
    public function query($query){
        try{
            $result = @mysql_query($query);
            if(!$result){
                throw new Exception("Fehler beim ausfuehren von \"query\".\nFehler enstanden bei folgenden SQL-Query:\nQuery: ".$query."\nMySQL Fehlermeldung: ".mysql_error()."\nMySQL FehlerNummer: ".mysql_errno());
            }else{
                return true;
            }
        }catch(Exception $e){
            $error = "FEHLERBESCHREIBUNG: ".$e->getMessage()."\n";
            $error.= "FEHLERCODE: ".$e->getCode()."\n";
            $error.= "FEHLERDATEI: ".$e->getFile()."\n";
            $error.= "FEHLERLINE: ".$e->getLine()."\n";
            $error.= "FEHLERINFO: ".$e->getTraceAsString()."\n";
            print "<pre>".$error."</pre>";
        }
    }
 
Zurück