sybase_unbuffered_query
(PHP 4 >= 4.3.0, PHP 5)
sybase_unbuffered_query — Send a Sybase query and do not block
Description
resource sybase_unbuffered_query
( string $query
, resource $link_identifier
[, bool $store_result
] )
Unlike sybase_query(),
sybase_unbuffered_query() reads only the first
row of the result set. sybase_fetch_array() and similar
function read more rows as needed. sybase_data_seek()
reads up to the target row. The behavior may produce better performance
for large result sets.
sybase_num_rows() will only return the correct number
of rows if all result sets have been read. To Sybase, the number of rows
is not known and is therefore computed by the client implementation.
Note:
If you don't read all of the resultsets prior to executing the next query,
PHP will raise a warning and cancel all of the pending results. To get rid of
this, use sybase_free_result() which will cancel pending
results of an unbuffered query.
Parameters
-
query
-
-
link_identifier
-
-
store_result
-
The optional store_result
can be FALSE to
indicate the resultsets shouldn't be fetched into memory, thus
minimizing memory usage which is particularly interesting with very
large resultsets.
Return Values
Returns a positive Sybase result identifier on success, or FALSE on
error.
Examples
Example #1 sybase_unbuffered_query() example
<?php
$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;
while ($row = sybase_fetch_row($q)) {
echo $row[0], ' ', $row[1], '<br />';
if ($i++ > 40000) {
break;
}
}
sybase_free_result($q);
sybase_close($dbh);
?>
Notes
Note: This function is only available when
using the CT library interface to Sybase, and not with the DB library.