Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Sybase Functions : sybase_fetch_assoc

sybase_fetch_assoc

Fetch a result row as an associative array (PHP 4 >= 4.3.0, PHP 5)
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.

Parameters

result

Return Values

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

Notes

Note:

This function is only available using the CT library interface to Sybase, and not the DB library.

Code Examples / Notes » sybase_fetch_assoc

elektrotechnik

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

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;
}


Change Language


Follow Navioo On Twitter
sybase_affected_rows
sybase_close
sybase_connect
sybase_data_seek
sybase_deadlock_retry_count
sybase_fetch_array
sybase_fetch_assoc
sybase_fetch_field
sybase_fetch_object
sybase_fetch_row
sybase_field_seek
sybase_free_result
sybase_get_last_message
sybase_min_client_severity
sybase_min_error_severity
sybase_min_message_severity
sybase_min_server_severity
sybase_num_fields
sybase_num_rows
sybase_pconnect
sybase_query
sybase_result
sybase_select_db
sybase_set_message_handler
sybase_unbuffered_query
eXTReMe Tracker