PHP Conference China 2020


(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assocCarga una fila resultante de Sybase como un array asociativo


sybase_fetch_assoc ( resource $result ) : array

sybase_fetch_assoc() es una versión de sybase_fetch_row() que utiliza como índices los nombres de columnas, en vez de enteros en el array resultante. Las columnas de tablas diferentes con los mismos nombres se devuelven como name, name1, name2, ..., nameN.

Es importante notar que utilizar la función sybase_fetch_assoc() NO es significativamente más lento que utilizar sybase_fetch_row(), y por lo contrario aporta un significativo valor añadido.



Valores devueltos

Devuelve un array que corresponde a la fila cargada, o FALSE si no hay más filas.


Nota: Esta función está disponible sólo cuando se utiliza la biblioteca CT de Sybase, y no la biblioteca DB.

Ver también

add a note add a note

User Contributed Notes 2 notes

elektrotechnik at onlinehome dot de
16 years ago
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

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)
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.

jpeterso at moody dot edu
17 years ago
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 = "";
        while(list($key, $val) = each($row))
                $values[$key] = $val;
    return $values;
To Top