note 71988 modified in mysqli.stmt-num-rows by danbrown
| From: | danbrown@php.net | Date: | Fri, 26 Sep 2008 15:49:33 +0000 |
| Subject: | note 71988 modified in mysqli.stmt-num-rows by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-144794@lists.php.net to get a copy of this message | ||
Please be advised, for people who sometimes miss to read this important Manual entry for this
function:
If you do not use mysqli_stmt_store_result( ), and immediatley call this function after executing a
prepared statement, this function will usually return 0 as it has no way to know how many rows are
in the result set as the result set is not saved in memory yet.
mysqli_stmt_store_result( ) saves the result set in memory thus you can immedietly use this function
after you both execute the statement AND save the result set.
If you do not save the result set but still want to use this function you have to actually loop
through the result set one row at a time using mysqli_stmt_fetch( ) before using this function to
determine the number of rows.
A thought though, if you want to determine the number of rows without storing the result set and
after looping through it, why not just simply keep an internal counter in your loop every time a row
is fetched and save the function call.
In short, this function is only really useful if you save the result set and want to determine the
number of rows before looping through it, otherwise you can pretty much recreate its use like I
suggested.
--was--
Please be advised, for people who sometimes miss to read this important Manual entry for this
function:
If you do not use mysqli_stmt_store_result( ), and immediatley call this function after executing a
prepared statement, this function will usually return 0 as it has no way to know how many rows are
in the result set as the result set is not saved in memory yet.
mysqli_stmt_store_result( ) saves the result set in memory thus you can immedietly use this function
after you both execute the statement AND save the result set.
If you do not save the result set but still want to use this function you have to actually loop
through the result set one row at a time using mysqli_stmt_fetch( ) before using this function to
determine the number of rows.
A thought though, if you want to determine the number of rows without storing the result set and
after looping through it, why not just simply keep an internal counter in your loop every time a row
is fetched and save the function call.
In short, this function is only really useful if you save the result set and want to determine the
number of rows before looping through it, otherwise you can pretty much recreate its use like I
suggested.
http://php.net/manual/en/mysqli.stmt-num-rows.php