PHP Mysqli的query返回值探讨

来源:互联网 发布:如何下载app软件 编辑:程序博客网 时间:2024/06/14 10:24


转自:http://blog.csdn.net/xftimes/article/details/29869667

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

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

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

[php] view plain copy
print?
  1. $strsql = "select id, symbol,sign,planet,element from zodiac";  
  2.    
  3. $result = $mysqliObj->query ( $strsql );  
  4. if($result instanceof mysqli_result)  
  5. {  
  6. }  

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

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

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

所以我这样写:

[php] view plain copy
print?
  1. $strsql = "select id, symbol,sign,planet,element from zodiac";  
  2.   
  3. $result = $mysqliObj->query ( $strsql );  
  4. if ($result instanceof mysqli_result) {  
  5.     echo "the query return a result!""<br/>";  
  6.    
  7.     while ( $row = $result->fetch_object() ) {  
  8.         echo "id:" . $row->id . " symbol:" . $row->symbol . " sign:" . $row->sign . "<br/>";  
  9.           
  10.     }  
  11. }  
  12. $result1=$mysqliObj->query ( $strsql );  
  13. while ( $row = $result1->fetch_array() ) {  
  14.     echo "id:" . $row[0] . " symbol:" . $row[1] . " sign:" . $row[2] . "<br/>";  
  15.   
  16. }  
  17. $result2=$mysqliObj->query ( $strsql );  
  18. while ( $row = $result2->fetch_assoc() ) {  
  19.   
  20.     echo "id:" . $row ["id"] . " symbol:" . $row ["symbol"] . " sign:" . $row ["sign"] . "<br/>";  
  21. }  
原创粉丝点击