Re: Why does this script run out of memory?

From: Date: Fri, 28 Oct 2011 22:13:20 +0000
Subject: Re: Why does this script run out of memory?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-315519@lists.php.net to get a copy of this message
On Fri, Oct 28, 2011 at 1:38 PM, Jim Long <php@umpquanet.com> wrote: > I'm running PHP 5.3.8 on FreeBSD 8.2 with MySQL 5.1.55. > > The script below is designed to be able to WHILE it's way through > a MySQL query result set, and process each row. > > However, it runs out of memory a little after a quarter million > rows.  The schema fields total to about 200 bytes per row, so > the row size doesn't seem very large. > > Why is this running out of memory? > > Thank you! > > Jim > > <?php > > $test_db_host = "localhost"; > $test_db_user = "foo"; > $test_db_pwd  = "bar"; > $test_db_name = "farkle"; > > $db_host = $test_db_host; > $db_user = $test_db_user; > $db_name = $test_db_name; > $db_pwd  = $test_db_pwd; > > if (!($db_conn = mysql_connect( $db_host, $db_user, $db_pwd ))) >        die( "Can't connect to MySQL server\n" ); > > if (!mysql_select_db( $db_name, $db_conn )) >        die( "Can't connect to database $db_name\n" ); > > $qry = "select * from test_table order by contract"; > > if ($result = mysql_query( $qry, $db_conn )) { > >        $n = 0; >        while ($row = mysql_fetch_assoc( $result )) { > // process row here >                $n++; >        } // while > 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

« previous php.general (#315519) next »