ora_fetch_into

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_fetch_into -- 将一行数据放入数组

描述

int ora_fetch_into ( resource cursor, array &result [, int flags] )

取得一行数据并将它放入到一个数组中。参数 flags 有两个标志值:如果设置 ORA_FETCHINTO_NULLS 标志,值为 NULL 的列设置在数组中;如果设置 ORA_FETCHINTO_ASSOC 标志,将创建一个元素由数据库字段命名的数组。

返回所取得行的列数。

例子 1. ora_fetch_into()

<?php
$results
= array();
ora_fetch_into($cursor, $results);
echo
$results[0];
echo
$results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo
$results['MyColumn'];
?>

参见 ora_parse()ora_exec()ora_fetch()ora_do()


add a note add a note User Contributed Notes
HERVE3D
15-Feb-2006 05:57
With : ora_fetch_into($curs, &$dt, ORA_FETCHINTO_ASSOC)
If the value of a field is NULL it will contains value from the row before.

To avoid this you can use :
ora_fetch_into($curs, $dt, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
And NULL fields remain empty.
kamas at telkom dot net
04-Jun-2003 04:19
becareful when fetching data with NULL value using ora_fetch_into().
table example :
field1    field2    nullable
----------------------
a    b    c
w    w    NULL
d    d    NULL
e    e    x

//php script :
$curs = ora_open($conn);
ora_parse($curs, "SELECT * FROM tableblah");
ora_exec($curs);
while(ora_fetch_into($curs, &$dt, ORA_FETCHINTO_ASSOC)) {
   echo $dt['field1'] . " - " . $dt['field2'] . " - " . $dt['nullable'] . "<br>\n";
}
ora_close($curs);

the above code will print:
a - b - c
w - w - c
d - d - c
e - e - x

if the value of the nullable field is NULL it will contains value from the
row before. to avoid this you can use :

while(ora_fetch_into($curs, &$dt, ORA_FETCHINTO_ASSOC)) {
   ...
   $dt['nullable'] = "";
}

to set $dt['nullable'] to an empty value.
Markus dot Elfring at web dot de
31-May-2002 07:33
The function "OCIFetchInto" seems to be better for special datatypes like "CLOB" or "BLOB".