S
SourceCode
Guest
Hallo,
also ich bin nicht grade der Hellste in objektorientierter Programmierung aber ein paar Grundlagen verstehe ich schon. Naja, ich habe mir mal eine Datenbank-Klasse gebaut (bzw. habe es versucht) und aus der möchte ich nach der Abfrage das Ergebnis aus der Klasse herausbekommen. Am besten ich zeig euch mal die Class:
Das ist die Klasse. Ja, vielleicht wird der ein oder andere jetzt sagen, dass man das besser machen kann aber das ist mir auch bewusst. Aber es geht erstmal um das folgende Problemchen:
Hier wird die Klasse mit den Parametern für die Verbindung zum SQL-Server instanziert. Nachfolgend wird eine SELECT-Abfrage gemacht. Und diese funktioniert so auch vollkommen. ABER sie funktioniert nur, wenn ich nicht mehr als 1 Spalte zurückbekomme. Wenn ich also jetzt den Query bei WHERE zu "WHERE id = 4 AND id = 5" abändere, dann funktioniert das nicht mehr. Ich bekomme einfach nen leeren String/Array zurück. Also das liegt daran, dass mehrere Zeilen abgefragt werden und die müssen ja irgendwie noch durch ne While-Schleife laufen etc.
Also könnte mir jetzt freundlicherweise jemand erklären, wie ich das am besten und am elegantesten hinbekomme das auch Abfragen, bei denen das Ergebnis mehr als 1 Spalte betrifft, funktionieren.
Vielen Dank schon mal!
Gruß, SourceCode! :)
also ich bin nicht grade der Hellste in objektorientierter Programmierung aber ein paar Grundlagen verstehe ich schon. Naja, ich habe mir mal eine Datenbank-Klasse gebaut (bzw. habe es versucht) und aus der möchte ich nach der Abfrage das Ergebnis aus der Klasse herausbekommen. Am besten ich zeig euch mal die Class:
PHP:
class Database {
public $string;
private $host;
private $user;
private $pass;
private $base;
public function __construct($host, $user, $pass, $base) {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->base = $base;
mysql_connect($this->host, $this->user, $this->pass) or die(mysql_error());
mysql_select_db($this->base);
}
public function __destruct() { }
public function select($string) {
$this->string = mysql_real_escape_string($string);
$sql = $this->string;
$result = mysql_query($sql);
$row = mysql_fetch_object($result);
return $row;
}
}
Das ist die Klasse. Ja, vielleicht wird der ein oder andere jetzt sagen, dass man das besser machen kann aber das ist mir auch bewusst. Aber es geht erstmal um das folgende Problemchen:
PHP:
$DB = new Database('localhost', 'name', 'pass', 'database');
$result = $DB->select('SELECT name, author FROM article WHERE id = 4');
echo $result->name;
Hier wird die Klasse mit den Parametern für die Verbindung zum SQL-Server instanziert. Nachfolgend wird eine SELECT-Abfrage gemacht. Und diese funktioniert so auch vollkommen. ABER sie funktioniert nur, wenn ich nicht mehr als 1 Spalte zurückbekomme. Wenn ich also jetzt den Query bei WHERE zu "WHERE id = 4 AND id = 5" abändere, dann funktioniert das nicht mehr. Ich bekomme einfach nen leeren String/Array zurück. Also das liegt daran, dass mehrere Zeilen abgefragt werden und die müssen ja irgendwie noch durch ne While-Schleife laufen etc.
Also könnte mir jetzt freundlicherweise jemand erklären, wie ich das am besten und am elegantesten hinbekomme das auch Abfragen, bei denen das Ergebnis mehr als 1 Spalte betrifft, funktionieren.
Vielen Dank schon mal!
Gruß, SourceCode! :)