> >         $len = sizeof($this->query_id);
> >         $len++;
> >         $this->query_id = array($len=>&$q);
> >         mysql_free_result($q);
> >         return $len;
>          $this->query_id[] = $q;
>          return sizeof($this->query_id);
>$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 
>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);
$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: 

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

Reply via email to