PHP Velho Oeste 2024

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc結果の行を連想配列として取得する

警告

この機能は PHP 7.0.0 で 削除 されました。

説明

sybase_fetch_assoc ( resource $result ) : array

sybase_fetch_assoc()sybase_fetch_row() で数値インデックスのかわりに カラム名を使用するバージョンです。複数のテーブルから同じ名前の カラムが取得された場合、それらの名前は name, name1, name2, ..., nameN のような形式で返されます。

sybase_fetch_assoc() を使用した場合でも、 かなりの機能が付加されるにもかかわらず、 sybase_fetch_row() を使用した場合に比べて著しく 遅くなるということはないということを重要なこととして記しておきます。

パラメータ

result

返り値

取得した行に対応する配列を返します。行がもうない場合には FALSE を返します。

注意

注意: この関数は、Sybase の CT ライブラリインターフェイスでのみ使用可能で、DB ライブラリでは使用できません。

参考

add a note add a note

User Contributed Notes 2 notes

up
1
elektrotechnik at onlinehome dot de
20 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
        //
       
    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
up
0
jpeterso at moody dot edu
20 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 = "";
        if(is_array($row))
        {
        while(list($key, $val) = each($row))
            {
                $values[$key] = $val;
            }
        }
    return $values;
}
To Top