2-2. 执行一条SQL语句

对数据库执行一条SQL语句:

(1) mixed:mysqli_query(mysqli $link, string $query, int $resultmode=MYSQLI_STORE_RESULT); 

 

1)对于insert,update,delete等不会返回数据的SQL语句,在执行没有错误时返回true

 

2)对于返回数据的SQL语句执行成功的时间会返回结果集对象,可以使用操作结果集对象的函数获取数据

 

3)第三个参数决定了mysqli client和sever之间取结果集的方式 :

     1. MYSQLI_STORE_RESULT 

         第三个默认是MYSQLI_STORE_RESULT模式或省略不填,表示具体的结果集一次性返回给客户端

         用函数取值的时候相当于在本地取数据

     2. MYSQLI_USE_RESULT

         客户端使用一条条取数据的函数,一次次来MySQL这边取,这种模式不怎么用,在返回数据量特别大的时候用

         用函数取值的时候相当于在服务器端取数据

 

注意:如果使用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));

 

(2)bool:mysqli_real_query(mysqli $link, string $query);

也可以使用本函数对数据执行一条SQL语句,返回结果为布尔值,不返回结果集

适用于只需返回布尔值,判断有没有执行成功的需求

如果想获取结果集可以使用mysqli_store_result( )获取结果集对象

$query='select * from t1';
if (mysqli_real_query($link,$query)){
    var_dump(mysqli_store_result($link));
}

 

(3)如果在执行SQL语句的时候发生错误,以上两个函数都将返回false,并且可以使用以下函数处理错误原因

        int:mysqli_errno(mysqli $link);

        string:mysqli_error(mysqli $link);

$query="insert into t2(info) values('ROBIN')"; //t2不存在
if (mysqli_query($link,$query)){
    //各种需要的操作
}
else{
    var_dump(mysqli_errno($link));
    var_dump(mysqli_error($link));
}
//string 'Table 'd14.t2' doesn't exist' (length=28)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值