mysql_fetch_array
sẽ giúp bạn có được một mảng có thể có làm khóa:
- cả số và tên của cột, nếu sử dụng
MYSQL_BOTH
- tên cột, sử dụng
MYSQL_ASSOC
- trong trường hợp này, bạn sẽ nhận được điều tương tự khi sử dụngmysql_fetch_assoc
- chỉ các số (tùy thuộc vào thứ tự của các cột trong truy vấn), nếu sử dụng
MYSQL_NUM
Lấy kết quả được lập chỉ mục theo tên cột có lẽ là giải pháp hữu ích nhất - ít nhất là dễ sử dụng hơn.
Nhưng nhận được kết quả được lập chỉ mục theo vị trí của các trường trong mệnh đề select là điều thú vị trong một tình huống:khi bạn có một số cột có cùng tên hoặc bí danh.
Trong trường hợp này, bạn không thể có hai mục nhập giống nhau chỉ mục trong một mảng, bạn sẽ chỉ có thể truy cập một trong các cột đó bằng cách sử dụng tên cột làm chỉ mục.
Đối với các cột khác có cùng tên, bạn sẽ phải sử dụng chỉ mục số.
Tình huống đó có lẽ là trường hợp duy nhất mà tôi sẽ sử dụng mysql_fetch_array
- và tôi thích sử dụng bí danh hơn trong truy vấn của mình, để tránh tình huống đó - theo ý kiến của tôi thì rõ ràng hơn.
mysql_fetch_assoc
sẽ giúp bạn nhận được một mảng, với tên cột là khóa và dữ liệu là giá trị.
Thực ra thì không có nhiều điều để nói.
Và mysql_fetch_object
đổi lại bạn sẽ nhận được các tài liệu phản đối.
Lựa chọn giữa mysql_fetch_assoc
và mysql_fetch_object
hầu hết có lẽ phụ thuộc vào cách bạn phát triển ứng dụng của mình:nếu sử dụng các đối tượng ở mọi nơi, thì đối tượng thứ hai có lẽ là phù hợp nhất.
Nếu sử dụng mảng làm vùng chứa dữ liệu, bạn chỉ có thể sử dụng mảng đầu tiên.