php[tek] 2018 : Call for Speakers


(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assocObtém uma linha do resultado como uma matriz associativa


array sybase_fetch_assoc ( resource $result )

Retorna uma matriz que corresponde a linha obtida, ou FALSE se não houverem mais linhas.

Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

sybase_fetch_assoc() é uma versão de sybase_fetch_row() que usa os nomes de colunas ao invés de integers para os índices na matriz resultante. Colunas de tabelas diferentes com os mesmos nomes são retornadas como name, name1, name2, ..., nameN.

Algo importante para notar é que usar sybase_fetch_array() NÃO é significativamente mais lento do que usar sybase_fetch_row(), enquanto provê um valor adicional significante.

Veja também sybase_fetch_array(), sybase_fetch_object() e sybase_fetch_row().

add a note add a note

User Contributed Notes 2 notes

elektrotechnik at onlinehome dot de
13 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
14 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