Re: re-using variables
- From: Jerry Stuckle <jstucklex@xxxxxxxxxxxxx>
- Date: Wed, 28 Feb 2007 13:48:20 -0500
Tim Streater wrote:
In article <1172668483.913253.134510@xxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Mitesh" <oopsbabies@xxxxxxxxxxx> wrote:
Jerry Stuckle wrote:Michael Fesser wrote:Ok if we need to call, mysql_free_result for mysql resources doesn't.oO(Jerry Stuckle)We're not talking PDO , Micha.
Toby A Inkster wrote:Try that with PDO and it will crash most likely. Overwriting $res will
You have:No, Toby.
$res = mysql_query("SELECT * FROM table1");
...
$res = mysql_query("SELECT * FROM table2");
if(!$res)
return;
$res is still going to be set as a result of your first query.
Use unset($res) between each query.
$res will have the results of the second query. The resource returned
by the second query (or false) will overwrite what was in $res.
not necessarily free the previous result set, which might then lead to
MySQL complaining about an unbuffered query or something like that.
| You cannot use the same variable for a PDOStatement object twice. As
| others have pointed out it works when you set this variable to null in
| between.
http://bugs.php.net/bug.php?id=35793
Micha
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================
that mean every other type of resources bound this way to a variable
must have a freeing function that has to be called before the variable
can be re-used? So doesn't it coincide with what I am saying that
variables bound to resources when re-used may cause problems. (and
according to the others post the variables can be re-used if the
previously allocated resource is freed)
My understanding was that, if you re-use $res without a call to mysql_free_result, it re-uses what $res is, which is a pointer to a result set, but doing that does *not* free up the space used by the result set. At least that's how it used to be. I don't know if they have improved the internals such that mysql_free_result is now a dummy call, or whether that is inherently impossible because mysql itself holds the result set.
Perhaps a guru can enlighten us.
-- tim
Tim,
I'm not a guru. But when you make certain calls to MySQL, it will hold certain resources for the result set. mysql_free_result() is anything BUT a dummy call.
Similar calls exist in most SQL databases for the same reason.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================
.
- References:
- re-using variables
- From: Mitesh
- Re: re-using variables
- From: Toby A Inkster
- Re: re-using variables
- From: Jerry Stuckle
- Re: re-using variables
- From: Michael Fesser
- Re: re-using variables
- From: Jerry Stuckle
- Re: re-using variables
- From: Mitesh
- Re: re-using variables
- From: Tim Streater
- re-using variables
- Prev by Date: Re: re-using variables
- Next by Date: Re: re-using variables
- Previous by thread: Re: re-using variables
- Next by thread: Re: re-using variables
- Index(es):
Relevant Pages
|