Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Oracle Spalten werden doppelt angezeigt

0 views
Skip to first unread message

Martin Fischer

unread,
Jun 8, 2009, 8:35:59 AM6/8/09
to
Hallo,

ich steige gerade in PHP ein und versuche Daten aus einer Oracle-DB
zugägnlich zu machen. Dazu habe ich XAMPP installiert, die OIC8
Erweiterung in der php.ini "ein"kommentiert und - nach einer Recherche
im Netz - die oci.dll der apache-Installtation mit einer aktuellen
Version ersetzt, weil ansonsten schon bei dem Versuch ein oci_connect
auszuführen einer Fehlermeldung kam.

Das Beispiel-Skript von PHP.net liefert mir zwar die korrekten
Ergebnisse, allerdings werden alls Spalten doppelt angezeigt.

Ist Euch so etwas schon untergekommen ?

Martin


_____________________________________________________________________

<?php

$conn = oci_connect('user', 'pw', 'oracledb');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}

$query = 'SELECT obj_id, obj_desc, cl_desc FROM OBJECT WHERE CL_ID =
10112';

$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}

$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit;
}

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
print '<tr>';
foreach ($row as $item) {
print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
}
print '</tr>';
}
print '</table>';

oci_close($conn);
?>

Matthias P. Wuerfl

unread,
Jun 8, 2009, 8:45:03 AM6/8/09
to
Martin Fischer schrieb:

> Das Beispiel-Skript von PHP.net liefert mir zwar die korrekten
> Ergebnisse, allerdings werden alls Spalten doppelt angezeigt.

> while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {

http://de.php.net/oci-fetch-array

Schau mal nach dem "mode"

Grüße, Matthias

jakob kollmann

unread,
Jun 8, 2009, 8:46:23 AM6/8/09
to
Hallo!

Martin Fischer wrote:
> while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {

oci_fetch_array ohne zusätzlichen mode Parameter liefert
ein array mit assoziativen und numerischen Indizes - also
im Prinzip alles doppelt:

array ()
[0] => "ein Wert"
['obj_id'] => "ein Wert"
.
.
.

lg. jakob

PS: Ich würde mir überlegen eine Abstraktionklasse wie Pear:MDB2
zu verwenden - Das Fehlerhandling ist einfacher.

--
jakob kollmann www.filofant.org

Minds are like parachutes: they only function when they're open.
(Tommy Dewar, 1864 - 1930)

Martin Fischer

unread,
Jun 8, 2009, 1:16:44 PM6/8/09
to
Matthias P. Wuerfl schrieb:

Hallo Matthias, da habe ich Euch wohl zu früh malträtiert :) Aber ich
hatte nicht damit gerechnet, dass es solche Möglichkeiten gibt und die
dll-Probs bei der Installation haben mich verunsichert.

Vielen Dank für Deine schnelle Hilfe!

Martin

Martin Fischer

unread,
Jun 8, 2009, 1:20:36 PM6/8/09
to
Hallo Jakob,

jakob kollmann schrieb:


> Hallo!
>
> Martin Fischer wrote:
>> while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
>
> oci_fetch_array ohne zusätzlichen mode Parameter liefert
> ein array mit assoziativen und numerischen Indizes - also
> im Prinzip alles doppelt:
>
> array ()
> [0] => "ein Wert"
> ['obj_id'] => "ein Wert"

Das werde ich mal genauer ausprobieren - Danke Dir!


> ..
> ..
> ..


>
> lg. jakob
>
> PS: Ich würde mir überlegen eine Abstraktionklasse wie Pear:MDB2
> zu verwenden - Das Fehlerhandling ist einfacher.
>


Da muss ich erst mal nach googeln :-) Bin noch gaaaanz frisch in diesem
Themenkomplex und "spiele" noch ein wenig herum.

lgz Marti n

0 new messages