Phân biệt mysql_fetch_assoc,mysql_fetch_array,.. 2007-08-15 01:10:40
các lệnh mysql_fetch_assoc,mysql_fetch_array,mysql_fetch_object đều dùng để fetch dữ liệu từ câu query, tuy nhiên dữ liệu trả về sẽ có dạng khác nhau ứng với mỗi câu lệnh.
Ví dụ:
$sql = mysql_query("SELECT * FROM table WHERE id=id");
+ mysql_fetch_assoc():
$rs = mysql_fetch_assoc($sql);
Dữ liệu trả về sẽ có dạng:
Và 1 mảng như vậy gọi là associative array
Hiển thị dữ liệu:
+ mysql_fetch_row():
$rs = mysql_fetch_row($sql);
Dữ liệu trả về sẽ có dạng:
Và 1 mảng như vậy gọi là enumerated array
Hiển thị dữ liệu:
+ mysql_fetch_array():
$rs = mysql_fetch_array($sql,mode_fetch);
trong đó mode_fetch có các giá trị:
+ MYSQL_ASSOC: trả về associative array(giống mysql_fetch_assoc())
+ MYSQL_NUM: trả về enumerated array(giống mysql_fetch_row())
+MYSQL_BOTH : (mặc định)
Dữ liệu trả về sẽ có dạng:
Hiển thị dữ liệu:
+ mysql_fetch_object():
$rs = mysql_fetch_object($sql);
Dữ liệu trả về sẽ có dạng:
Hiển thị dữ liệu:
Ví dụ:
$sql = mysql_query("SELECT * FROM table WHERE id=id");
+ mysql_fetch_assoc():
$rs = mysql_fetch_assoc($sql);
Dữ liệu trả về sẽ có dạng:
Array(
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);
Và 1 mảng như vậy gọi là associative array
Hiển thị dữ liệu:
echo $rs['tên_field1'],$rs['tên_field2']
+ mysql_fetch_row():
$rs = mysql_fetch_row($sql);
Dữ liệu trả về sẽ có dạng:
Array(
0=>giá trị 1,
1=>giá trị 2,
2=>giá trị 3,
);
0=>giá trị 1,
1=>giá trị 2,
2=>giá trị 3,
);
Và 1 mảng như vậy gọi là enumerated array
Hiển thị dữ liệu:
echo $rs[0],$rs[1]
+ mysql_fetch_array():
$rs = mysql_fetch_array($sql,mode_fetch);
trong đó mode_fetch có các giá trị:
+ MYSQL_ASSOC: trả về associative array(giống mysql_fetch_assoc())
+ MYSQL_NUM: trả về enumerated array(giống mysql_fetch_row())
+MYSQL_BOTH : (mặc định)
Dữ liệu trả về sẽ có dạng:
Array(
'tên_field1'=>giá trị 1,
0=>giá trị 1,
'tên_field2'=>giá trị 2,
1=>giá trị 2,
'tên_field3'=>giá trị 3,
2=>giá trị 3,
);
'tên_field1'=>giá trị 1,
0=>giá trị 1,
'tên_field2'=>giá trị 2,
1=>giá trị 2,
'tên_field3'=>giá trị 3,
2=>giá trị 3,
);
Hiển thị dữ liệu:
echo $rs['tên_field1'],$rs['tên_field2']; //hoặc
echo $rs[0],$rs[1]; // 0,1 là thự tự của các field trong table
echo $rs[0],$rs[1]; // 0,1 là thự tự của các field trong table
+ mysql_fetch_object():
$rs = mysql_fetch_object($sql);
Dữ liệu trả về sẽ có dạng:
Object (
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);
'tên_field1'=>giá trị 1,
'tên_field2'=>giá trị 2,
'tên_field3'=>giá trị 3,
);
Hiển thị dữ liệu:
echo $rs->tên_fiel1,$rs->tên_fiel2,..
Tra loi 5 comment(s) 2007-08-15 01:10:40
gaulucky92 2008-02-22 09:52:22
Vậy giữa những kiểu fetch như vậy xài cái nào là good nhất?
Tra loi
leothanh 2008-03-30 09:45:43
Tra loi
c_n 2008-03-31 03:34:08
Vd với trường hợp chỉ cần lấy 1 mẫu tin xác định thì dùng Object hoặc assoc thay vì dùng array.
Khi làm việc với khối lượng dữ liệu lớn thì càng phải chú ý dùng cái nào cho phù hợp ko thì tèo mất mysql :D
Tra loi
GnuhNguyen 2009-04-06 02:04:50
Tra loi
gaulucky92 :d 2009-10-27 04:03:11
Tra loi
Y kien