Re: Simple MySQL sample code runs out of memory

From: Date: Fri, 28 Oct 2011 05:38:20 +0000
Subject: Re: Simple MySQL sample code runs out of memory
References: 1 2 3 4 5  Groups: php.db 
Request: Send a blank email to php-db+get-48073@lists.php.net to get a copy of this message
Here is a link for researching. http://php.net/manual/en/function.mysql-fetch-assoc.php HTH, Best, Karl On Oct 28, 2011, at 12:35 AM, Karl DeSaulniers wrote:
Also, I don't know how your displaying this info, but if you have a good number of entries, you may want to look into pagination. Then your only grabbing a certain number of sets at a time not the whole database. Best, Karl On Oct 28, 2011, at 12:29 AM, Karl DeSaulniers wrote:
Hmmm.. Try this.. for($i=0; $i<$num_rows; $i++){ $c = mysql_result($result,$i,"contract"); echo sprintf( "|%13d |%7d |\n", $c, $i ); mysql_free_result($c); //Free the memory with this. } or this.. for($i=0; $i<$num_rows; $i++){ $c = mysql_result($result,$i,"contract"); echo sprintf( "|%13d |%7d |\n", $c, $i ); mysql_free_result($result); //Free the memory with this. } I haven't used it in a long time, so not positive if you free the $result or what you grab from $result ($c) Also, it might be mysql_freeresult(), if mysql_free_result() doesn't work, try that. There is also the off chance that I am mixing things. You may need to use mysql_fetch_assoc() to use the free results function. something like.. while ($row = mysql_fetch_assoc($result)) { echo $row["contract"]; } mysql_free_result($result); But I think it will fix your memory error. LMK, HTH, Best, Karl On Oct 27, 2011, at 11:57 PM, php@umpquanet.com wrote:
On Thu, Oct 27, 2011 at 10:43:48PM -0500, Karl DeSaulniers wrote:
Maybe this.. HTH, <?php ... $result = mysql_query( $qry, $db_conn ) or die( mysql_error() . "\n" ); $num_rows = mysql_numrows($result); if(!$result || ($num_rows <= 0)){ echo "Error displaying info"; } else if($num_rows > 0){ for($i=0; $i<$num_rows; $i++){
    $c = mysql_result($result,$i,"contract");
    echo sprintf( "|%13d |%7d |\n", $c, $i );
} } ?> Best, Karl
Wow, working code! Thanks. I did try it: <?php require_once( '../include/mysql_funcs.php' ); $test_db_host = "localhost"; $test_db_user = "msm"; $test_db_pwd = "EetGiOj6"; $test_db_name = "test_msm"; $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_spot_table order by contract_seq"; $result = mysql_query( $qry, $db_conn ) or die( mysql_error() . "\n" ); $num_rows = mysql_numrows($result); if(!$result || ($num_rows <= 0)){ echo "Error displaying info"; } else if($num_rows > 0){ for($i=0; $i<$num_rows; $i++){ $c = mysql_result($result,$i,"contract"); echo sprintf( "|%13d |%7d |\n", $c, $i ); } } ?> But it does the same thing: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20 bytes) in /usr/local/www/apache22/data/bogus_copy/xx4.php on line 31 Line 31 is:
 31        $c = mysql_result($result,$i,"contract");
Karl DeSaulniers Design Drumm http://designdrumm.com --PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Karl DeSaulniers Design Drumm http://designdrumm.com
Karl DeSaulniers Design Drumm http://designdrumm.com

« previous php.db (#48073) next »