热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPMysqli的query返回值探讨

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

今天,用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!". "
";

while ( $row = $result->fetch_object() ) {
echo "id:" . $row->id . " symbol:" . $row->symbol . " sign:" . $row->sign . "
";

}
}
$result1=$mysqliObj->query ( $strsql );
while ( $row = $result1->fetch_array() ) {
echo "id:" . $row[0] . " symbol:" . $row[1] . " sign:" . $row[2] . "
";

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

echo "id:" . $row ["id"] . " symbol:" . $row ["symbol"] . " sign:" . $row ["sign"] . "
";
}



推荐阅读
author-avatar
手机用户2502858281
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有