MySQL und Mehrdimensionale Arrays

hey sven ... jetzt bin stehe ich grade völlig auf dem schlauch ... entweder reicht mein php-wissen noch nicht oder ich bin zu blöd für deine idee ;)

ich hänge mal den ganzen quell code dran .. .vllt kannst dus mir am beispiel erläutern...

PHP:
	function db_abfrage($sql_server, $sql_user, $sql_pass, $sql_datenbank, $request){
		$daten_reihe = array(array(),array());
		global $gl_error;
		global $gl_error_text;
		
		$verbindung = mysql_connect($sql_server,$sql_user,$sql_pass);
		if(!$verbindung){
			$gl_error=1;
			array_push($gl_error_text, 'Kann die Verbindung nicht aufbauen! Fehler:'.mysql_error());
			//echo('Kann die Verbindung nicht aufbauen! Fehler:'.mysql_error());
		}
		else{
			$db_selected = mysql_select_db($sql_datenbank, $verbindung);
			if(!$db_selected){
				$gl_error=1;
				array_push($gl_error_text, 'Kanndie Datenbank '.$sql_db.'nichtbenutzen! Fehler:'.mysql_error());
				//echo('Kanndie Datenbank '.$sql_db.'nichtbenutzen! Fehler:'.mysql_error());
			}
			else{
				$ergebnis = mysql_query($request, $verbindung);
				if(!$ergebnis){
					$gl_error=1;
					array_push($gl_error_text, 'Die Abfrage '.$request.' ist falsch! Fehler'.mysql_error());
					//echo('Die Abfrage: '.$request.' ist falsch! Fehler:'.mysql_error());
				}
				else{
					if(mysql_num_rows ($ergebnis) > 0){
						if(mysql_num_rows ($ergebnis) == 1){
							$datensatz = mysql_fetch_array($ergebnis);
							$gl_error=0;
							return $datensatz;
							//var_dump ($datensatz);
						}
						else{
							$gl_error=0;
							$datenreihe = $->fetchAll($ergebnis); // !
							return $datenreihe;//?								
						}
					
					}
					else{
						$gl_error=1;
						array_push($gl_error_text, 'Die Abfrage '.$request.' brachte kein Ergebnis!');
						//echo('Die Abfrage '.$request.' brachte kein Ergebnis!');
					}
				}
			}
		}
	}
:confused::confused::confused:
 
hmmm ... das bedeutet ich müsste die komplette abfrage umschreiben ... hat die PDO abfrage irgendwelche nachteile die man beachten müsste oder sollte man grundsätzlich eher auf diese alternative zurück greifen?

gruß
 
das bedeutet ich müsste die komplette abfrage umschreiben ...
Hmmm, bei den wenigen Zeilen ist das ja auch schnell gemacht ;)

hat die PDO abfrage irgendwelche nachteile die man beachten müsste oder sollte man grundsätzlich eher auf diese alternative zurück greifen?
Insbesondere im Hinblick auf die Sicherheit deiner Anwendung bringen dich prepared statements einen ganzen Schritt weiter. Dann solltest du natürlich auch bindValue() verwenden und nicht weiterhin die Variablen direkt ins Query setzen. Zum Gebrauch von PDO einfach mal danach in Verbindung mit prepared statements googlen - dazu gibts einige gute HowTos.

Relativ unglücklich bei der Verwendung von PDO ist, dass du nur übers Kapseln der PDO-Klasse das finale Statement herausbekommst, welches schlussendlich an die Datenbank gesendet wird. :/
 
Es ist durchaus empfehlenswert, darauf umzusteigen, zumindest wenn man davon Mehrgewinn hat(ist ja hier der Fall). Nachteile wüsst ich jetzt keine, Vorteile eine Menge, auch jenseits des hier erörterten Rades.

Ich würde es an deiner Stelle nutzen, in 2 Wochen kannst du dir nicht mehr vorstellen, wie es damals ohne war :-)

mysqli wäre m.E. noch besser, aber geht ja hier halt nicht.
 
Welche PHP Version läuft bei dir ?

Fatal error: Cannot use [] for reading in /db.php on line 38

wenn du noch mein vorschlag verwenden möchtest, dann kannst du das mal so probieren:
PHP:
$daten_reihe = array();
while($datensatz = mysql_fetch_assoc($ergebnis)) {
        $daten_reihe[] = $datensatz;
}
 
Zurück