PHP Doku:: Fetch a result row as an associative array - function.sybase-fetch-assoc.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenSybaseSybase Funktionensybase_fetch_assoc

Ein Service von Reinhard Neidl - Webprogrammierung.

Sybase Funktionen

<<sybase_fetch_array

sybase_fetch_field>>

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assocFetch a result row as an associative array

Beschreibung

array sybase_fetch_assoc ( resource $result )

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Parameter-Liste

result

Rückgabewerte

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Anmerkungen

Hinweis: Diese Funktion steht nur zur Verfügung, wenn Sie die CT-Bibliothek als Schnittstelle zu Sybase verwenden.

Siehe auch


2 BenutzerBeiträge:
- Beiträge aktualisieren...
elektrotechnik at onlinehome dot de
6.05.2004 13:33
Very often you see constructs like this to loop thru a result set:

while ($row = sybase_fetch_assoc($result))
{
    while (current($row)) // or  while (current($row) != false)
    {
        $data = current($row);
        $key = key($row);
               
        //
        // do stuff here
        //
       
    next($row);   
    }
}

Do not use it in this way! You have to write the inner while loop this way:

while (current($row) !== false)

If you just use
while (current($row) != false)
or
while (current($row))

you could be in trouble and loose some data. In my case I had a query which contained the following statement:

datediff(dd, date1, date2) as days

Now if days computes to 0 then the two while loop examples from above will exit (because the 0 is 'seen' as false). Therefore you must use while (current($row) !== false) which will not exit if one of you data contains 0.

Hth,
rgds,
Marcus
jpeterso at moody dot edu
1.07.2003 21:51
For users that want this function in other applications, use this function.  I have been using it for over a year with great success.

function sybase_fetch_assoc($query_result){
        $row = sybase_fetch_array($query_result);
        $values = "";
        if(is_array($row))
        {
        while(list($key, $val) = each($row))
            {
                $values[$key] = $val;
            }
        }
    return $values;
}



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)