版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/87282717
MYSQLI_USE_RESULT和MYSQLI_STORE_RESULT参数决定了mysqli client和sever之间取结果集的方式
- 默认的 MYSQLI_STORE_RESULT模式,具体的结果集一次性返回给PHP
- MYSQLI_USE_RESULT模式具体的数据并不会一次性返回给PHP,而是在PHP那边用一条一条取数据的函数(解析结果集的函数)来MYSQL这边来取
/* 下面也是执行一条SQL语句 */
$query='select * from t1';
/* 下面第三个参数决定了取结果的具体方式,一般有两种方式:
* MYSQLI_USE_RESULT和MYSQLI_STORE_RESULT(默认,常用)
* MYSQLI_STORE_RESULT模式其实已经把数据库的数据一次性搬回php了
* 再用mysqli_fetch_row()函数取一条记录其实是在php本地取的
*/
$result=mysqli_query($link, $query,MYSQLI_STORE_RESULT);
获取结果中行的数量
$query='select * from t1';
$result=mysqli_query($link, $query); /* 获取select查询的结果 */
var_dump(mysqli_num_rows($result));
注意:如果使用MYSQLI_USE_RESULT模式则必须在获取完所有的结果才可以使用该函数
$result=mysqli_query($link, $query,MYSQLI_USE_RESULT);
var_dump(mysqli_fetch_row($result));
var_dump(mysqli_fetch_row($result));
var_dump(mysqli_fetch_row($result));
/* mysqli_num_rows()函数在MYSQLI_USE_RESULT模式下获取不到记录有多少行
* 因为MYSQLI_USE_RESULT模式表示数据都在MySQL服务器端不在PHP端,
*/
var_dump(mysqli_num_rows($result));