[PHP4] oci_fetch_array workaround

tucow

*****
20 April 2006
41
0
Hallo zusammen,

gibt es ein bekanntes workaround für PHP4 damit man eine ähnliche funktion wie oci_fetch_array() hat?

Kommt bitte nicht damit das ich doch MySQL anstatt Oracle benutzen soll, meine Firma benutzt halt Oracle da lässt sich nichts machen.

Ich hab mir gedacht man könnte die Anzahl der Spalten einer Zeile zählen und dann die Spalte einzeln anspringen und dies in ein Array setzen, ich denke so macht es oci_fetch_array() auch. Bleibt nur die Frage wie ich das anstellen kann.
Blicke bei der Benutzung von Oracle noch nicht 100%ig durch (gestern damit angefangen).


Falls Ihr Vorschläge, Anregungen oder sogar schon ein Workaround habt und dies posted wäre ich Euch sehr dankbar.



Gruß,
Andreas
 
Das hier kann zwar nicht ganz die Funktionalität von oci_fetch_array() nachbilden, aber es sollte Dir schonmal weiterhelfen:
PHP:
$num_rows = ocifetchstatement($parsed, $results);

$keys = array_keys( $results );
$result_set = Array();
for ( $i = 0; $i < $num_rows; $i++ )
{
	$set = Array();
	foreach ( $keys as $key )
	{
		$set[$key] = $results[ $key ][ $i ];
	}
	array_push( $result_set, $set );
}
 
Sorry (doofe Frage) bin seit 7 Uhr am Programmieren(Scripten) ich versteh grad nicht woher $parsed und $results kommen.. und kann es sein das Du mich falsch verstanden hast? oci_fetch_array listet die cols/spalten in ein array nicht die rows/zeilen?

Steh total aufm Schlauf, ist glaube ich besser Feierabend zu machen und morgen weiter zu machen *grübel*:roll:
 
das ding von tleilax macht nix anderes als wie

PHP:
$result_set = array();
while($daten = fetch_array($result)) {
   $result_set[] = $daten;
}

wieso nimmst du nicht ne klasse die dir so ein mist erspart? sowas wie adodb?
 
das ding von tleilax macht nix anderes als wie

PHP:
$result_set = array();
while($daten = fetch_array($result)) {
   $result_set[] = $daten;
}

wieso nimmst du nicht ne klasse die dir so ein mist erspart? sowas wie adodb?

Weil am Server nichts geändert werden soll.. was meinste wieso ich sonst frage? ;)
Wenn ich was ändern dürfte würde ich php5 installieren.. da hab ich direkt ne funktion.


@tleilax: ich werds morgen mal ausprobieren, ich hoffe ich bekomme das hin :(
 
Naja, für AdoDB musste nix am Server ändern. Nur'n paar mehr Dateien draufspielen. ;)

Aber ganz ehrlich? Ich mag AdoDB absolut nicht. Muss damit bei der Arbeit hantieren und es ist in meinen Augen nur dann wirklich sinnvoll, wenn man verschiedene DBMS ansprechen will oder in absehbarer Zeit ein Wechsel anstellen sollte. Ansonsten spricht nix gegen einen eigenen Abstraktionslayer.
 
Aber ganz ehrlich? Ich mag AdoDB absolut nicht. Muss damit bei der Arbeit hantieren und es ist in meinen Augen nur dann wirklich sinnvoll, wenn man verschiedene DBMS ansprechen will oder in absehbarer Zeit ein Wechsel anstellen sollte. Ansonsten spricht nix gegen einen eigenen Abstraktionslayer.

ich bin auch nicht unbedingt ein fan davon (vorallendingen da die mir meine idee geklaut haben mit spl :( zwar nicht wirklich von mir, aber meine db klasse arbeitet auch mit dieser technik, und ich hab gedacht ich wäre einfach nur besser als alle anderen :mrgreen: ), aber generel find ich es nicht schlecht. somit kann man sich an einen still gewöhnen und auf jedem system anwenden... das kann einen ne menge ärger ersparen, da dass ansprechen und auslesen der datenbank immer gleich ist.
weil ich weiß wie es nervt wenn man plötzlich anstant mysql_xxx immer pg_xxx oder mssql_xxx schreiben muss und co. Und mit anderen dbms wirds scheinbar noch komplizierter... :-?
 
Moin, hab den Abteilungsleiter nun überzeugt PHP5 zu nutzen, jedoch bekomm ich nun keine Fehlermeldungen mehr, der Bildschirm bleibt einfach weiß und nichts erscheint..

in der php.ini hab ich error_reporting = E_ALL, sollte also eigentlich alles gezeigt werden.

Bin Ratlos. :yawn:
 
in der php.ini hab ich error_reporting = E_ALL, sollte also eigentlich alles gezeigt werden.

nein... such mal nach diyplay errors oder so. es gibt noch ne option mit der man die ausgabe der fehler steuern kann... weil man könnte ja auch einfach alle fehler inne datei schreiben.