mysql_fetch_array() vs mysql_fetch_assoc() WAS: Re: [PHP] Why does this script run out of memory?

From: Date: Fri, 28 Oct 2011 22:19:56 +0000
Subject: mysql_fetch_array() vs mysql_fetch_assoc() WAS: Re: [PHP] Why does this script run out of memory?
Groups: php.general 
Request: Send a blank email to php-general+get-315521@lists.php.net to get a copy of this message
On Fri, Oct 28, 2011 at 18:13, Paul Halliday <paul.halliday@gmail.com> wrote: > > Whats the difference between fetch_assoc and fetch_row? > > I use: > while ($row = mysql_fetch_row($theQuery)) { >    doCartwheel; > } > > on just under 300 million rows and nothing craps out. I have > memory_limit set to 4GB though. Although, IIRC I pushed it up for GD > not mysql issues. > > Same OS and php ver, MySQL is 5.1.48 Please don't hijack other's threads to ask a question. I've started this as a new thread to address this question. mysql_fetch_array() grabs all of the data and places it in a simple numerically-keyed array. By contrast, mysql_fetch_assoc() grabs it and populates an associative array. This means that the column names (or aliases, et cetera) become the keys for the array. With mysql_fetch_assoc(), you can still call an array key by number, but it's not vice-versa with mysql_fetch_array(). The difference in overhead, if you meant that (in which case, my apologies for reading it as a question of functional difference), is variable: it's based mainly on the difference between the bytes representing the integers used as keys in mysql_fetch_array() versus the size in bytes of the strings used as keys in mysql_fetch_assoc(). -- </Daniel P. Brown> Network Infrastructure Manager http://www.php.net/

« previous php.general (#315521) next »