odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_objectObtener una fila de resultados como un objeto

Descripción

odbc_fetch_object(resource $result, int $rownumber = ?): object

Obtiene un object desde una consulta de ODBC.

Parámetros

result

El recurso de resultado de odbc_exec().

rownumber

Escoger opcionalmente qué número de fila recuperar.

Valores devueltos

Devuelve un objeto que se corresponde con la fila traída, o false si ya no hay más filas.

Notas

Nota: Esta función existe cuando se compila con soporte para DBMaker, IBM DB2 o UnixODBC.

Ver también

add a note

User Contributed Notes 10 notes

up
2
thorsten at rinne dot info
21 years ago
odbc_fetch_object() works nice with PHP 4.3.3 under W2K with IBM DB2 V.7.2 and V.8.1:<?php$conn = odbc_connect($db_name, $username, $password) or die(odbc_error_msg()); $sql = "SELECT * FROM TABLE"; $result = odbc_exec($conn, $sql);while ($rows = odbc_fetch_object($result)) {     print $rows->COLUMNNAME;    }odbc_close($conn); ?>
up
1
general at maccrafters dot com
22 years ago
Here's a bit of code I came up with tha behaves just like mysql_fetch_object()    function odbc_fetch_object($result)    {        $rs=array();        if(odbc_fetch_into($result,&$rs))        {            foreach($rs as $key=>$value)            {    $fkey=strtoupper(odbc_field_name($result,$key+1));                $rs_obj->$fkey = trim($value);            }        }        return($rs_obj);    }Special thanks to previous posters for giving me a starting point for this code.
up
0
Anonymous
4 years ago
This would be so much more useful if it contained information on what the object returned contains. From var_dump() it seems just an assoc array in object form. But is there column type info, for example?
up
0
charlesk at netgaintechnology dot com
22 years ago
I asked one of the developers to enable this function in the CVS.  I tried it and it worked.  I didnt do anything special.  I was using a Microsoft Access ODBC driver that came with my Windows XP Pro Install. I was using the Apache web server.Charles
up
0
kynaston at yahoo dot com
22 years ago
If you're using Masoud's code in PHP4.2+, change the fifth line to:odbc_fetch_into($result,&$rs);(the order of arguments have changed)
up
-1
j dot a dot z at bluewin dot ch
22 years ago
hey "general at maccrafters dot com"thank you very much for your code. it saved me time!however i extended it a bit!---------------------------------------------    function __odbc_fetch_object($res)    {        if( function_exists("odbc_fetch_object") )            return odbc_fetch_object($res);        $rs = array();        $rs_obj = false;        if( odbc_fetch_into($res, &$rs) )        {            foreach( $rs as $key=>$value )            {                $fkey = odbc_field_name($res, $key+1);                $rs_obj->$fkey = trim($value);            }        }        return $rs_obj;    }---------------------------------------------cheers, jaz
up
-1
Marcus dot Karlsson at usa dot net
23 years ago
It' possible to get both odbc_fetch_object() and odbc_fetch_array() to work just by removing #ifdef HAVE_DBMAKER/#endif in php_odbc.h line 216 (219) and the same in php_odbc.c line 87 (90) and 1229 (1380).I've done this sucessfully in the PHP 4.2.0 release using ODBC towards a MySQL database.I really can't understand why the #ifdef is there from the beginning, but they do have their reasons.These were the files i "patched"/* $Id: php_odbc.c,v 1.120.2.1 2002/04/08 22:21:30 sniper Exp $ *//* $Id: php_odbc.h,v 1.45.2.1 2002/03/12 02:27:47 sniper Exp $ */
up
-1
masuod_a at hotmail dot com
23 years ago
This function not availible in PHP 4.1.1 , you can try this : if (function_exists(odbc_fetch_object)) return;function odbc_fetch_object($result, $rownumber=1) { $rs=array(); odbc_fetch_into($result, $rownumber,$rs); foreach ($rs as $key => $value) {   $fkey=strtolower(odbc_field_name($result, $key+1));     $rs_obj->$fkey = $value; } return $rs_obj;}if you wanna use this function in a loop  you must set rownumber parameteryou can't use this function like : while ($myobj=odbc_fetch_object($res)) { ....}
up
-1
philip
20 years ago
This function requires one of the following to exist: Windows, DB2, or UNIXODBC.
up
-1
h4 at locked dot org
22 years ago
my 2 cents:function data($res) {    $obj = new stdClass();    $data_array = array();            if (!odbc_fetch_into($res, $data_array)) {        return 0;    }    $num_fields = odbc_num_fields($res);    for ($i = 0;$i < $num_fields; $i++) {        $name = odbc_field_name($res, $i + 1);        if (!$name) {            return 0;        }                    $obj->{$name} = $data_array[$i];    }            return $obj;}works fine for me (PHP 4.3.1)
To Top