Hallo Leute,
Ich habe folgendes Problem.. Wenn ich mit preparedStatement arbeite und meine Ergebnisse dann über die methode fetch() auslesen möchte, landet mein Programm jedesmal in einer Endlosschleife. Dabei sagt ja selber php.net, dass man einfach nur mit statement->fetch() alle daten auslesen kann.
Hier mal mein Code, vllt seht ihr ja das Problem. Ich bin echt komplett leer im kopf. Dazu soll gesagt werden, der erste Datensatz lässt sich auslesen wenn ich halt nur $this->stmt->fetch(); mache, ohne schleife... aber das kann es ja net sein.
Danke für jede Hilfe
Gruß Raidri
Ich habe folgendes Problem.. Wenn ich mit preparedStatement arbeite und meine Ergebnisse dann über die methode fetch() auslesen möchte, landet mein Programm jedesmal in einer Endlosschleife. Dabei sagt ja selber php.net, dass man einfach nur mit statement->fetch() alle daten auslesen kann.
Hier mal mein Code, vllt seht ihr ja das Problem. Ich bin echt komplett leer im kopf. Dazu soll gesagt werden, der erste Datensatz lässt sich auslesen wenn ich halt nur $this->stmt->fetch(); mache, ohne schleife... aber das kann es ja net sein.
PHP-Code:
try{
//Database Connection holen
$this->dbCon = parent::getDatabaseConnection();
//Je nach dem was gesucht wird, so wird eine andere SQL Abfrage gestartet
switch($art){
case 'my':
//Statement für meine Touren vorbereiten
$this->stmt = $this->dbCon->prepare(Storage::SELECT_MY_OR_HOST_TOURS);
//Nötige Parameter dem Statement mitgeben
$this->stmt->bind_param('ii', $data[0], $data[0]);
break;
case 'host':
//Statement für die host Touren vorbereiten
$this->stmt = $this->dbCon->prepare(Storage::SELECT_MY_OR_HOST_TOURS);
//Nötige Parameter dem Statement mitgeben
$this->stmt->bind_param('ii', $data[1], $data[1]);
break;
default:
//Statement für alle Touren vorbereiten
$this->stmt = $this->dbCon->prepare(Storage::SELECT_ALL_TOURS);
break;
}
//Statement ausführen
$this->stmt->execute();
//Ergebnisse der Select Anweisung, an diese Variablen binden
$this->stmt->bind_result($tourID, $name, $length, $startDate, $description, $type, $thread, $author, $isGroup, $visibility, $mapData);
//Ein SplObjectStorage erzeugen, zum speichern der Touren
$toursArray = new \SplObjectStorage();
//Über die Fetch() Methode alle Informationen auslesen und die das TourVO packen
while($this->stmt->fetch()){
//TourVO erzeugen und füllen
$tourVO = new TourVO();
$tourVO->tourID = $tourID;
$tourVO->name = $name;
$tourVO->length = $length;
$tourVO->startDate = $startDate;
$tourVO->description = $description;
$tourVO->type = $type;
$tourVO->thread = $thread;
$tourVO->author = $author;
$tourVO->isGroup = $isGroup;
$tourVO->visibility = $visibility;
$tourVO->mapData = $mapData;
//tourVO ans SPLObjectStorage anhängen
$toursArray->attach($tourVO, $tourVO->tourID);
}
$this->stmt->close();
parent::closeDatabaseConnection();
return $toursArray;
}
catch(\Exception $e){
$this->stmt->close();
parent::closeDatabaseConnection();
return null;
}
Gruß Raidri
Kommentar