Phân biệt các câu lệnh mysql_fetch

Mọi lập trình viên xuất sắc đều đã từng bắt đầu học những dòng lệnh căn bản. Và chắc hẳn các lập trình viên php cũng đã làm quen với câu lệnh mysql_fetch ngay từ những ngày đầu. Các lệnh mysql_fetch_assoc, mysql_fetch_array, mysql_fetch_object đều dùng để fetch dữ liệu từ câu query, nhưng có mấy ai biết được sự khác nhau của từng loại câu lệnh?Bài viết này sẽ giải đáp thắc mắc của các bạn.

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”);

1. 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,

);

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’]

2. 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,

);

Và 1 mảng như vậy gọi là enumerated array

Hiển thị dữ liệu

echo $rs[0],$rs[1]

3. 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,

);

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

4. 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,

);

Hiển thị dữ liệu:

echo $rs->tên_fiel1,$rs->tên_fiel2,..

Leave a Reply