All that you've accomplished in your example is to store the size of the
queries; you've stored no data.

Second, per my previous email: DO NOT RELEASE THE RESULT RESOURCE UNTIL YOU
ARE DONE WITH THE PAGE.
If you want to re-use a result record set, you can with the mysql_seek()
function.   You do not have to make yet another query to the database with
the same SELECT query.  You can free the result resources when you've
completed the page.

-----Original Message-----
From: Anzak Wolf [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 26, 2002 10:07 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: [PHP] MySQL arrays


>CHANGE:
> >         $len = sizeof($this->query_id);
> >         $len++;
> >         $this->query_id = array($len=>&$q);
> >         mysql_free_result($q);
> >         return $len;
>
>TO:
>          $this->query_id[] = $q;
>          return sizeof($this->query_id);
>
>second:
>$q is a resource, that is, a pointer variable.  When you execute
>mysql_free_result($q), you free-up the memory that it pointed to.
>Therefore, when you attempt to recall its value, it is pointing to memory
>that you no longer own.  Hence, it is not a valid resource.  Therefore, do
>not free the resource.  When the script completes, the memory will
>automatically be de-allocated.  Also, when you use the phrase "&$q", you 
>are
>creating a pointer to a pointer; is that what you want?
>
I thought that &$q created a new instance ie a copy of the data rather than 
a pointer.

That worked though I have do a $q_id-- in my num_rows method because sizeof 
returns 1 but the way the value is being assigned it is being put in the 0 
location.  Though that is not a problem.  Would it be better to parse out 
the data into arrays that I can access later then destroy the query?

for example
$q = mysql_query("select * from User");
$this->query_id[] = mysql_num_rows($q);
mysql_free_result($q);
$len = sizeof($this->query_id) - 1;
return $len;

This way when I have a large number of queries stored I don't have the over 
head of all the pointers to the query objects or would doing this create 
more overhead?

I'm trying to save on repeated calls to the database since it is possible 
that the database may change between with the first query is done and the 
last query is done and if they are the same query then the page would need 
the results to be the same.

_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to