先使用SQL建立資料表,並在表格中插入資料
create table contactInfo(
uid mediumint(8)
unsigned NOT NULL AUTO_INCREMENT, #ULL ID
deparmentId char(3 ) NOT NULL, #部門編號
address varchar(80) NOT NULL, #聯絡地址
phone
email varchar(100), #聯絡人的電子郵件
PRIMARY KEY(uid) 設定使用者ID(即uid)為主鍵
);
fetch_row()、fetch_array()、fetch_assoc()、fetch_object()這四個函數以相似的方法依序讀取結果資料行。它們只在引用字段的方式上有差別
它們的共同點:每次調用將自動返回下一條結果記錄,如果已經到達結果數據表的末尾,返回false
1、$result->fetch_row()
從結果集中取得一條結果記錄,將值存放在索引數組中,是四個方法中最方便的一個。
各個欄位需要以$row[$n]的方式讀取,其中$row是從結果集中取得的一行記錄傳回的數組,$n為連續的整數下標。
因為回傳的是索引數組,所以還可以和list()函數結合在一起使用。
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){連接詞mysqli_connect_error());
exit();
}
$myi->query('set name/ 12碼
/*將部門編號為D01的聯絡人姓名和電子郵件全部取出存入結果集中*/
$result=$mysqli->query("SELECT name,email FROM contactInfo WHERE departmentId='D01'");
電子郵件:';
echo '
';
while(list($name,$email)=$result->fetch_row()){
echo '- mail.name:com:$ /li>';
}
echo '
';
?>
2、$result->fetch_assoc()
此方法將以一個關聯數組的形式傳回一條結果記錄,資料的欄位名鍵,欄位內容表示值。
$mysqli=new mysqli('localhost','mysql_user','mysql_pwd','my_db_name');
if(mysqli_connect_errno()){ 77% mysqli_connect_error());
exit();
}
$mysqli->query('set names gb315 FROM contactInfo');
echo '
';
echo '聯絡人資訊表
'
//標籤提供了表格的簡述,有可能是用來讓搜尋引擎更容易找到
echo '使用者ID |
姓名 |
部門編號 |
聯絡地址 |
聯繫電話 |
電子郵件 | ';
while($row=$result->fetch_assoc()){
//注意$result-> fetch_accoc()是回傳關聯數組,即使用$key_name(鍵值)存取數值
echo '
';
/td>';
echo ''.$row['name'].' | ';
echo ''.$row['departmentId'].' | ' ;
echo ''.$row['address'].' | ';
echo ''.$row['phone'].' | ';;; '.$row['email'].' | ';
echo '
';
}
echo '
$mysqli->close();
?>
3、$result->fetch_array()
此方法可以說是fetch()_row和fetch_assco()兩種方法的結合版本,可以將結果集的各條記錄取得為關聯數組或數值索引數組,或同時取得為關聯數組和索引數組。預設情況,會同時取得這兩種陣列。可以透過在該方法傳入如下不同的值來修改這種預設行為。
MYSQLI_ASSOC :記錄被當作關聯數組傳回,欄位名為鍵,欄位內容為值。
MYSQLI_NUM :記錄被當作索引數組傳回,並依查詢中指定的欄位名順序排序。
MYSQLI_BOTH :這是預設值,記錄即作為關聯數組又作為索引數組傳回。
4、$result->fetch_object()
該方法與前面三個方法不同,它將以一個物件的形式傳回一條結果記錄,而不是陣列。它的各個欄位需要以物件的方式進行訪問,資料列的名字區分字母大小寫情況。
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){連接詞mysqli_connect_error());
exit();
}
sql) g query("SELECT * FROM contactInfo");
echo '';
echo '聯絡人資訊表
'
;
echo '用戶ID |
姓名 |
部門編號 |
聯絡地址 |
聯絡電話 |
電子郵件 | ';
while($rowObj=$result->fetch_object()){
echo '';
echo ''.$rowObj->name.' | ';
echo ''.$rowObj->deparmentId.' | '; $rowObj->address.'';
echo ''.$rowObj->phone.' | ';
/td>';
echo '
';
}
echo '
'
p. 以上四個結果集中遍歷資料的方法,每次呼叫都會自動傳回下一結果記錄。如果想要改變這個讀取的順序,可以使用結果集物件中的data_seek()方法明確地改變目前記錄位置。也可以使用結果集物件中的num_rows屬性,給出結果資料表裡的記錄個數。也可以使用結果物件中的lengths屬性傳回一個群組,該數組的各個元素是使用以上四個方法最後讀取結果記錄中各字段裡的字元個數。
以上就介紹了結果集中獲取記錄的4種方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。