Al een tijdje zitten zoeken maar behalve de PHP-manual is er maar weinig info over deze combinatie te vinden. Ik heb een vraag waarvan het antwoord wsl. vrij simpel zal zijn maar ik weet het niet. Stel ik heb de volgende code (uit de manual):
<?php
// suppose your stored procedure info.output returns a ref cursor in :data
$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");
oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);
while ($data = oci_fetch_row($curs)) {
var_dump($data);
}
oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>
En naast :data uit de cursor wil ik een extra veld teruggeven met daarin een foutcode. Dus naast de cursor nog een tweede outputveld dat niet in een databasetabel is opgenomen maar via een Oracle stored procedure wordt afgeleid en teruggegeven. Hoe doe ik dat dan met ocibindbyname en als ik zelf al oci_fetch_array met oci_assoc gebruik, kan dat dan nog steeds en hoe dan? Of kan ik dat veld alleen in de array aanroepen via een/de numerieke waarde.
PHP met Oracle werkt overigens prima maar het is leuk uitzoekwerk als je ook maar iets van de PHP-manual wilt afwijken lijkt het.
<?php
// suppose your stored procedure info.output returns a ref cursor in :data
$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");
oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);
while ($data = oci_fetch_row($curs)) {
var_dump($data);
}
oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>
En naast :data uit de cursor wil ik een extra veld teruggeven met daarin een foutcode. Dus naast de cursor nog een tweede outputveld dat niet in een databasetabel is opgenomen maar via een Oracle stored procedure wordt afgeleid en teruggegeven. Hoe doe ik dat dan met ocibindbyname en als ik zelf al oci_fetch_array met oci_assoc gebruik, kan dat dan nog steeds en hoe dan? Of kan ik dat veld alleen in de array aanroepen via een/de numerieke waarde.
PHP met Oracle werkt overigens prima maar het is leuk uitzoekwerk als je ook maar iets van de PHP-manual wilt afwijken lijkt het.