执行一条SQL语句【mysqli_query( )函数参数模式解读】

版权声明:转载请附上文章地址 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));

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/87282717