Hi mal wieder.
Ichhabe diesmal keine Problem, sondern würde gerne einfach mal schaun lassen, ob ich richtig liege. Ich versuche mir gerade die Grundlagen für OOP etwas näher zu bringen; dazu geht eben nix ohne Klassen. Ich habe hier eine MySQL-Verbindungsklasse die auch klasse funktioniert. Um meine Verständnis der Klasse zu testen habe ich den Code kommentiert. Vielleicht könnte sich jemand mal meine Kommentierungen anschaun und mir sagen, ob ich die Funktionsweise der Klasse richtig vertanden habe ( und mich ggf. korrigiert )?
Thx schon mal^^.
Also, hier der Code:
Ichhabe diesmal keine Problem, sondern würde gerne einfach mal schaun lassen, ob ich richtig liege. Ich versuche mir gerade die Grundlagen für OOP etwas näher zu bringen; dazu geht eben nix ohne Klassen. Ich habe hier eine MySQL-Verbindungsklasse die auch klasse funktioniert. Um meine Verständnis der Klasse zu testen habe ich den Code kommentiert. Vielleicht könnte sich jemand mal meine Kommentierungen anschaun und mir sagen, ob ich die Funktionsweise der Klasse richtig vertanden habe ( und mich ggf. korrigiert )?
Thx schon mal^^.
Also, hier der Code:
PHP-Code:
<?php
class db_mysql{
private $connection=NULL; # private: nur innerhalb der Klasse verfügbar
private $result=NULL; # private: nur innerhalb der Klasse verfügbar
public function connect($host,$database,$user,$pass){ # public: die Funktion ist außerhalb der Klasse verfügbar
$this->connection=mysql_connect( # Zugriff auf $connection über die Pseudo-Variable $this
$host,
$user,
$pass,
TRUE
);
#wenn mysql_connect TRUE zurück gibt wird die DB gewählt
mysql_select_db($database,$this->connection);
} # eof public function connect
public function disconnect(){
if(is_resource($this->connection)){ # wenn eine Verbindung zur DB besteht ( -> is_resource => TRUE )...
mysql_close($this->connection); # schließe die DB-Verbindung die mit den Parametern von $connection aufgebaut wurde
}
}# public function disconnect
public function query($query){
/*
benötigt $query als erwarteten Parameter. Diese werden bei Functionsaufruf ( mysql->query() ) außerhalb der Klasse
übergeben.
*/
if(is_resource($this->connection)){# wenn eine DB-Verbindung besteht prüfe, ob $result genutzt wird...
if(is_resource){# ...falls ja...
mysql_free_result($this->result);# ...gebe diese Recource frei ( thx^^ )
}
$this->result=mysql_query($query,$this->connection);
/*
...und für mysql_query mit dem, aus mysql->query übergebenen Parameter und der Verbindung connection aus
*/
}
}# public function query
public function fetchRow(){
if(is_resource($this->result)){# wenn mysql_query ( aus function query ) durchgeführt ist
$row=mysql_fetch_assoc($this->result);# ...lege die Daten in $row als assoziatives Array ab
if(is_array($row)){# prüfe, ob $row ein Array ist
return $row; # wenn ja gibt $row an das Srcipt zurück.!!meine Frage an der Stelle: wohin zurück bzw. wie drückt man das aus?!!
}else{
return FALSE;# wenn $row keine Array ist gib FALSE zurück
}
}
}# eof public function fetchRow
}# eof class db_mysql
$mysql = new db_mysql;
$mysql->connect('localhost','classes_test','xxx','yyy');
$mysql->query('SELECT * FROM ctest');
while($row=$mysql->fetchRow()){
echo $row['name'],$row['aname'],$row['bname'];
}
$mysql->disconnect();
?>

Kommentar