PHP Mysqli的query返回值探讨

今天,用php 的mysqli方式连接数据库,连接上了,代码却不能自动提示,无法知道mysqli::query()的返回值,看手册,提示如下:

失败时返回 FALSE,通过 mysqli_query() 成功执行SELECT, SHOW, DESCRIBEEXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE

最后通过如此写法,代码就可以提示:

$strsql = "select id, symbol,sign,planet,element from zodiac";
 
$result = $mysqliObj->query ( $strsql );
if($result instanceof mysqli_result)
{
}

从上看出,$result的返回值有三种,true,false,与 mysqli_result,因此当返回结果的类型为 mysqli_result时,开发工具才知道类型,也才会自动提示,否则无法知悉类型的结果,开发工具也无法提示,以图为证!

接下来有遇到另一个问题,如何取值,$result有三种方法可以取到值:fetch_array(),fetch_assoc(),fetch_object(),这三个方法的使用请看手册

请注意是FETCH,也就是一个一个取值,所以要用while语句,运行完毕后$result就没有值了,这里不能用foreach(个人认为)。

所以我这样写:

$strsql = "select id, symbol,sign,planet,element from zodiac";

$result = $mysqliObj->query ( $strsql );
if ($result instanceof mysqli_result) {
	echo "the query return a result!". "<br/>";
 
	while ( $row = $result->fetch_object() ) {
		echo "id:" . $row->id . " symbol:" . $row->symbol . " sign:" . $row->sign . "<br/>";
		
	}
}
$result1=$mysqliObj->query ( $strsql );
while ( $row = $result1->fetch_array() ) {
	echo "id:" . $row[0] . " symbol:" . $row[1] . " sign:" . $row[2] . "<br/>";

}
$result2=$mysqliObj->query ( $strsql );
while ( $row = $result2->fetch_assoc() ) {

	echo "id:" . $row ["id"] . " symbol:" . $row ["symbol"] . " sign:" . $row ["sign"] . "<br/>";
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值