• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

class - this ->Frage

Status
Für weitere Antworten geschlossen.

Mars@Gera

Mitglied
Hy @ all.
Ich habe mal eine Frage, also ich bin gerade dabei mir mal das Prinzip von Klassen anzuschauen und mir bissl vor Augen zu führen, worin der Vorteil ist usw.!

Jetzt habe ich mir mal aus Spaß ein Klasse gemacht, die Verbindung mit der Datenbank aufbaut und ein query senden. Zugegeben habe ich mir das von jemand anders abgeschaut und versucht zu verstehen, warum manches so geschrieben wird!

Also hier die Klasse:
PHP:
<?php
class TS_MySQL{
    /**
     *the mysql-connecting var
     */
    var $con;
    
    /**
     *the db-connecting var
     */
    var $db;
    
    /**
     *connecting the mysql-server
     */
    function TS_MySQL($server, $user, $passwort, $datenbank){
        if(!$this->con = @mysql_connect($server, $user, $passwort)){
            $msg = 'There couldn`t be constructed a connection to the server'.mysql_error($this->con)."{{}}";
            $msg .= 'Please verify the following MySQL-Settings in the file "config.php"'."\n"
                         .'- Server'."\n"
                         .'- User'."\n"
                         .'- Passwort';
            trigger_error($msg, E_USER_ERROR);
            die();
        }
        if(!$this->con = @mysql_select_db($datenbank)){
            $msg = 'There couldn`t be constructed a connection to the server'.mysql_error($this->con)."{{}}";
            $msg .= 'Please verify the following MySQL-Settings in the file "config.php"'."\n"
                         .'- Datenbank';
        }
    }
    
    /**
     *do a mysql-query
     */
    function sql_qry($sql){
        $query = @mysql_query($sql,$this->con);
        if(!$query){
            trigger_error('MySQL-Query failed: '.mysql_errno($this->con).': '.mysql_error($this->con)."{{}}"
                                     .'MySQL-Query: "'.$sql.'"',E_USER_ERROR);
            die();
        }
}
    
    /**
     *get the number of rows
     */
    function mysql_num_rows($qry){
        return mysql_num_rows($qry);
    }
    
    function mysql_fetch_object($qry){
        return mysql_fetch_object($qry);
    }
}
?>

Jetzt meine Frage, wie kann ich an diesem Beispiel außerhalb dieser Datei ein mysql_query() ausführen? $this->sql_qry("hier der DB-inhalt");

Und kann mir noch jemand die Vorteile von Klassen sagen?

MfG Marcel
 
PHP:
require 'TS_MySQL.php';
$db = new TS_MySQL($server, ...);
$db->sql_qry('SELECT VERSION()');

Ein SQL-Klasse bringt erst einen großen Vorteil, wenn man mal mehrere Datenbankverbindungen hat. Dafür ist deine Klasse aber nicht ausgelegt.
 
Ein SQL-Klasse bringt erst einen großen Vorteil, wenn man mal mehrere Datenbankverbindungen hat. Dafür ist deine Klasse aber nicht ausgelegt.

Eigentlich liegt der Vorteil einer Klasse eher genau im Gegenteil, nämlich mit nur einer Verbindung viele verschiedene Operationen auszuführen. Das spart Ressourcen, schont den Server und macht das Handling einfacher.
Und wieso ist die Klasse nicht auf Mehrfachverbindungen ausgelegt? Sicher, es ist eine sehr spartanische Klasse, zumal noch in PHP4 geschrieben, aber was spricht dagegen, mehrere Objekte davon abzuleiten und so Mehrfachverbindungen herzustellen?
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben