mysqli_fetch_row()函數返回結果的理解


在PHP處理對數據庫查詢返回的結果集,即mysqli_query()函數返回的結果集,我們可以把它處理為數組形式以便於處理。

我們一般會用下面四個函數:

1、array mysqli_fetch_array ( resource result [, int result_type] )

              #返回結果集的一行作為數組,兩種數組索引都行
2、mixed mysqli_fetch_object ( resource result )

              #返回結果集的一行作為對象 <?php echo $myrow-date; ?>
3、mixed mysqli_fetch_row ( resource result )

              #返回結果集的一行作為枚舉數組,只能使用數字索引
4、mixed mysqli_fetch_assoc ( resource result )

              #返回結果集的一行作為關聯數組,只能是關聯數組的索引形式

一般我們會使用這樣的形式來在網頁中顯示結果:

但是有時候我們對於他們都是返回的是數組,但是可能並不太理解他們是怎樣返回的,下面以mysqli_fetch_row 為例進行分析,其它幾個也是類似的。

分析:上面的四個轉換結果集中數據為對象、數組的函數,它們都是返回的結果集中的一行作為對象
像游標一樣,如果使用循環,它會自動指向下一行然后又返回一個數組,最后沒有了,就返回false。
由於false是最后的退出條件,所以要while($myrow=mysqli_fetch_row($result)){}這樣,把變量和函數的
賦值語句作為while的條件語句,如果先在外面定義了$myrow=mysqli_fetch_row($result);
然后while($myrow){}就會陷入死循環。

這幾個函數實際上像是一個游標,先將結果集中的第一行作為數組,然后游標向后移動一個
又得到一個數組,依次類推到最后沒有了,就直接返回一個false,所以我們對於行的遍歷
最好用while循環,對單個數組中的數據的遍歷,最好用for循環,這個數組的長度用count($myrow)獲取

另外,$myrow[索引]的形式可以得到數組中的某一個元素。對於對象,可以用$myrow-數據庫中字段名。

備注:這里的索引要么是數字索引,要么是關聯數組的索引,對於關聯數組的索引其實就是對應着
數據庫中的字段名稱,必須一致才行。

這些函數返回的數組的結構可以根據下面的圖來理解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM