MySql Klasse -> OOP Anfänger

d_b

Mitglied
Moin,
ich habe heute mit Hilfe einiger Tutorials meine ersten Versuche mit OOP gestartet. Wollte im Zuge dessen eine Klasse für mysql Verbindung und Abfrage schreiben. Irgendwo habe ich allerdings einen Denkfehler gemacht und ich weiss nicht wo. Würde mich sehr über einen Anstoss in die richtige Richtung freuen!
Speziell geht es um den Verbindungsaufbau zur Datenbank - das habe ich so probiert:

PHP:
    class Mysqlclass {
        var $_connection = "";
        
		function connect($host, $user, $pwd, $db) {
			$this->_connection = mysql_connect($host, $user, $pwd);
			mysql_select_db($db, $this->_connection);
			if (!$this->connect()) {
	            $this->_errno = mysql_errno();
	            $this->_error = mysql_error();				
			}
		}
/*...*/
}

Die Verbindung im Script habe ich versucht so herzustellen:

PHP:
$sql = new Mysqlclass;
$sql->connect($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);

Dann geht das Script aber komischerweise in eine Endlosschleife(?). Die folgenden Fehlermeldungen werden auf jeden Fall endlos oft ausgegeben:

Warning: Missing argument 1 for connect() in /home/www/web8/html/intern2/mysql.class.php on line 9

Warning: Missing argument 2 for connect() in /home/www/web8/html/intern2/mysql.class.php on line 9

Warning: Missing argument 3 for connect() in /home/www/web8/html/intern2/mysql.class.php on line 9

Warning: Missing argument 4 for connect() in /home/www/web8/html/intern2/mysql.class.php on line 9

Warning: mysql_connect(): Access denied for user: 'wwwrun@localhost' (Using password: NO) in /home/www/web8/html/intern2/mysql.class.php on line 10

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/www/web8/html/intern2/mysql.class.php on line 11

Weiß jemand Rat?
Danke!
vG
David
 
PHP:
if (!$this->connect()) {

Hier löst du eine Rekursion aus. Die Funktion ruft sich immer wieder selbst auf.

Prüfe lieber ob [phpf]mysql_errno[/phpf] ungleich 0 ist.
 
Danke für die schnelle Antwort!
Aber warum gibt es überhaupt einen Fehler bei der Verbindung? Die Verbindungsdaten sind alle Korrekt.
 
PHP:
function connect($host, $user, $pwd, $db) {

Deine Funktion connect() erwartet 4 Parameter.

PHP:
if (!$this->connect()) {

Du übergibst aber gar keinen Parameter.

Sprich dein erstes mysql_connect() funktioniert, aber jeder Aufruf danach, löst den Fehler aus. Und ruft von sich aus danach WIEDER diese Funktion auf.

Weiterhin würde deine Abfrage gar keinen Sinn machen, da deine Funktion ja keinen Rückgabe wert hat.
 
Ach ja - blöder denkfehler... Hab das ganze noch ein bischen erweitert und funktioniert jetzt alles wunderbar.
Danke!
 
Zurück