Ever wondered what the difference between mysql_fetch_array and mysql_fetch_assoc is? What about mysql_fetch_row? I’ve always used mysql_fetch_array, but, for debugging purposes, here’s what they all do:
- mysql_fetch_assoc returns an associative array of your field names eg $row[‘field_name_here’]
- mysql_fetch_row returns a numeric array eg $row returns the first column, $row returns the second column etc. – not a good idea as it makes the code less readable, and if the column order changes, or another column is inserted, the order will break.
- mysql_fetch_array returns both an associative and a numeric array – supposedly slower.
mysql_fetch_array() returns essentially two arrays, one with a numeric index and one with an associative based key index. Thus, using mysql_fetch_array() without specifying which method you want (either MYSQL_NUM or MYSQL_ASSOC), always returns a double array, which is considerably more inefficient as compared to mysql_fetch_row() or mysql_fetch_assoc().
Read More on the Same Subject
- Configuring PHP with MySQL for Apache 2 or IIS in Windows
- Reminder: MySQL Data Types: Numbers
- WordPress and phpMyAdmin: Database Management
- PHP/MySQL Date and Time Notes
- PHP/MySQL Counter Tutorial