odbc_fetch_object

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

odbc_fetch_objectSonuç satırını bir nesne olarak döndürür

Açıklama

odbc_fetch_object ( resource $sonuç_kimliği [, int $satırnum ] ) : object

Bir ODBC sonuç kümesindeki bir satırı object türünde döndürür. Bu işlevin hangi sürümlerde kullanılabildiğini öğrenmek için aşağıdaki sürüm bilgilerine bakınız.

Değiştirgeler

sonuç_kimliği

odbc_exec() ile döndürülmüş bir sonuç tanıtıcısı.

satırnum

Döndürülecek satırın numarası; belirtilmesi isteğe bağlıdır.

Dönen Değerler

İstenen satırı içeren bir nesne döner. Satır kalmamışsa FALSE döner.

Sürüm Bilgisi

Sürüm: Açıklama
4.3.3 PHP, IBM DB2 veya UnixODBC destekli derlenmişse bu işlev kullanılabilir.
4.3.2 PHP, Windows için derlenmişse bu işlev kullanılabilir.
4.0.2 PHP, DBMaker destekli derlenmişse bu işlev kullanılabilir.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 9 notes

up
1
thorsten at rinne dot info
16 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
0
h4 at locked dot org
16 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)
up
0
charlesk at netgaintechnology dot com
16 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
general at maccrafters dot com
16 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
kynaston at yahoo dot com
17 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
0
Marcus dot Karlsson at usa dot net
17 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
j dot a dot z at bluewin dot ch
16 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
masuod_a at hotmail dot com
17 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 parameter
you can't use this function like :
while ($myobj=odbc_fetch_object($res)) {
....
}
up
-1
philip
14 years ago
This function requires one of the following to exist: Windows, DB2, or UNIXODBC.
To Top