downloads | documentation | faq | getting help | mailing lists | reporting bugs | sites | links | my 
search for in the  
view the version of this page
Last updated: Thu, 21 Aug 2003


(PHP 4 >= 4.0.2)

odbc_fetch_object --  Fetch a result row as an object


object odbc_fetch_object ( resource result [, int rownumber])


This function is currently not documented; only the argument list is available.

add a note add a note User Contributed Notes
thorsten at rinne dot info
15-Oct-2003 04:26
odbc_fetch_object() works nice with PHP 4.3.3 under W2K with IBM DB2 V.7.2 and V.8.1:

odbc_connect($db_name$username$password) or die(odbc_error_msg()); 
$result odbc_exec($conn$sql);
while (
$rows odbc_fetch_object($result)) { 
j dot a dot z at bluewin dot ch
01-May-2003 03:26
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
h4 at locked dot org
11-Mar-2003 10:28
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)
charlesk at netgaintechnology dot com
24-Jan-2003 02:54
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.

general at maccrafters dot com
06-Nov-2002 03:45
Here's a bit of code I came up with tha behaves just like mysql_fetch_object()

    function odbc_fetch_object($result)
            foreach($rs as $key=>$value)
                $rs_obj->$fkey = trim($value);


Special thanks to previous posters for giving me a starting point for this code.
kynaston at yahoo dot com
05-Sep-2002 07:55
If you're using Masoud's code in PHP4.2+, change the fifth line to:


(the order of arguments have changed)
Marcus dot Karlsson at usa dot net
25-Apr-2002 12:57
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 2002/04/08 22:21:30 sniper Exp $ */
/* $Id: php_odbc.h,v 2002/03/12 02:27:47 sniper Exp $ */
masuod_a at hotmail dot com
23-Feb-2002 04:29
This function not availible in PHP 4.1.1 , you can try this :

if (function_exists(odbc_fetch_object))
function odbc_fetch_object($result, $rownumber=1) {
 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 parameter
you can't use this function like :
 while ($myobj=odbc_fetch_object($res)) {

 Last updated: Thu, 21 Aug 2003
show source | credits | sitemap | mirror sites 
Copyright © 2001-2003 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sat 01 Nov 2003 04:13:36 EST EST