|
sybase_fetch_assoc
Fetch a result row as an associative array
(PHP 4 >= 4.3.0, PHP 5)
Code Examples / Notes » sybase_fetch_assocelektrotechnik
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 Languagesybase_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 |