getButterfly Logo getButterfly

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[0] returns the first column, $row[1] 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().

Subscribe to getButterfly Blog

Once a week or so we send an email with our best content. We never bug you, we just send you our latest piece of content.

If you found any value in this post, agree, disagree, or have anything to add - please do. I use comments as my #1 signal for what to write about. Read our comment policy before commenting! Comments such as "Thank you!", "Awesome!", "You're the man!" are either marked as spam or stripped from URL.

Leave a Reply

Your email address will not be published. Required fields are marked *