Datensätze mit "Prepared Statements" ausgeben - XAMPP(Apache) stürzt ab.

noOx

Grünschnabel
Hi alle,

ich habe mir hier ein Tutorial zum Thema "Sichere Datenbankzugriffe durch Prepared Statements" angeschaut & hänge nun an meinem ersten Problem. Das hinzufügen von Datensätzen und ausgeben von einzelnen Spalten der Datenbank funktioniert auch wunderbar. Wenn ich aber jetzt mehrere Spalten oder gar alle Spalten der Datenbank ausgeben will, öffnet sich ein Fenster in dem steht das "HTTP Apache beendet werden musste".

Kurz gefasst: Will ich mehrer Spalten (SELECT * FROM BLA) ausgeben stürzt Apache ab, gebe ich eine Spalte aus (SELECT id FROM BLA) funktioniert alles einwandfrei. Die Daten sollen nicht über WHERE gefiltet werden.

Quellcode:
PHP:
$sql = "SELECT * FROM file";
	$stmt = $connect->prepare($sql);
	
	if($stmt->execute())
	{
  		$data = $stmt->fetch(PDO::FETCH_OBJ);
		
		echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
  			<tr>
    			<td>', $data->id, '</td>
    			<td></td>
    			<td></td>
    			<td></td>
    			<td></td>
  			</tr>
		</table>';
	}

PS: Die Verbindung zur MYSQL-Datenbank stehen in einer anderen Datei & werden includiert also nicht wundern.
 
Hi,

ein "SELECT * FROM ...." wird in der Regel mehr als nur einen Datensatz zurück geben. Du müsstest also über das Ergebnis iterieren:

PHP:
while( $data = $stmt->fetch(PDO::FETCH_OBJ) )
{
   // TODO: Hier Ausgabe erledigen
}

Allerdings kann ich mir gerade nicht verstellen, das dies einen Segfault im Apache verursacht. Das wäre ein hochgradiges Problem.

Welche Apache-Version und PHP-Version verwendest du denn?
 
Zurück