|
ibase_fetch_row
Fetch a row from an InterBase database
(PHP 4, PHP 5)
Code Examples / Notes » ibase_fetch_rowrichard
If you have a query "select ... from table1 where ..." and would like to know the cardinality of the result set by issuing a separate query "select count(*) from table1 where ..." then you might end up with an incorrect value since an insert or delete can occur between the running of these queries (unlikely, but possible). The only way i can think of getting the correct value would be something along the lines of <?php $qry = "select ... from table1 where ..."; $result = ibase_query($tr, $qry) // assume $tr is a transaction $count = 0; while ($row[$count] = ibase_fetch_assoc($result)) $count++; ?> then $count is the cardinality, and $row the result set. Then you can work with the result set: <?php for ($i = 0; $i < $count; $i++) { // do something with $row[$i] } ?> gurroa
I had some troubles with moving php application from one dbase to another. From SyBase to Interbase. Especially with missing function "ibase_num_rows($result)". These are functions that helped me. <?php ... $dbh = ibase_connect ($host, $username, $password); ... $ar_count_queries = array(); function ibasequery($query) { $cquery = preg_replace("/SELECT(.*?)FROM(.*?)/","SELECT COUNT(*) FROM \\2",$query); if ($cquery != $query) { $crow=get_object_vars( ibase_fetch_object( ibase_query( $GLOBALS["dbh"], $cquery ) ) ); } @$res = ibase_query($GLOBALS["dbh"],$query); if (isset($res)) { if (isset($crow)) { $GLOBALS["ar_count_queries"][$res] = $radcountselect["COUNT"]; } return $res; } return false; } function ibasenumrows($result) { return $GLOBALS["ar_count_queries"][$res]; } function ibasefetchrow($result) { return get_object_vars(ibase_fetch_object($result)); } // example $result = ibasequery("SELECT * FROM TABLE"); $numrows = ibasenumrows($result); echo "Number of rows: $numrows.\nContent: \n"; while ($onerow = ibasefetchrow($res)) { foreach($onerow as $key => $value) { echo $key.": ".$value.", "; } echo "\n"; } ?> Gurroa |
Change Languageibase_add_user ibase_affected_rows ibase_backup ibase_blob_add ibase_blob_cancel ibase_blob_close ibase_blob_create ibase_blob_echo ibase_blob_get ibase_blob_import ibase_blob_info ibase_blob_open ibase_close ibase_commit_ret ibase_commit ibase_connect ibase_db_info ibase_delete_user ibase_drop_db ibase_errcode ibase_errmsg ibase_execute ibase_fetch_assoc ibase_fetch_object ibase_fetch_row ibase_field_info ibase_free_event_handler ibase_free_query ibase_free_result ibase_gen_id ibase_maintain_db ibase_modify_user ibase_name_result ibase_num_fields ibase_num_params ibase_param_info ibase_pconnect ibase_prepare ibase_query ibase_restore ibase_rollback_ret ibase_rollback ibase_server_info ibase_service_attach ibase_service_detach ibase_set_event_handler ibase_timefmt ibase_trans ibase_wait_event |