Re: re-using variables
- From: Jerry Stuckle <jstucklex@xxxxxxxxxxxxx>
- Date: Wed, 28 Feb 2007 13:46:57 -0500
Mitesh wrote:
Jerry Stuckle wrote:Michael Fesser wrote:.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
==================
Ok if we need to call, mysql_free_result for mysql resources doesn't
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)
THE VARIABLE IS NOT THE RESOURCE! The variable can be reused. But there are MySQL resources allocated. mysql_free_result() frees up these resources. If you don't call it, the resources won't be freed up until the garbage collector runs. This will be sometime after the last reference to the resource is destroyed/reused or whatever.
Now this is not likely to cause a problem in most systems. However, in some circumstances (i.e. the resource caused rows or tables to be locked in MySQL), other requests could be delayed until the garbage collector runs. And in extremely busy systems, this could occasionally cause other requests to time out because the locks are held too long.
But these are problems you wouldn't generally notice in most websites. Nonetheless, it's always better to clean up after yourself and free the resources as soon as you're done with them. Not only is it good programming practice, it decreases the load on the server (because resources are not being held longer than necessary).
--
==================
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-using variables
- Prev by Date: Re: How can I change a file's date?
- Next by Date: Re: re-using variables
- Previous by thread: Re: re-using variables
- Next by thread: mysql vs. mysqli, how to call stored procedure from php
- Index(es):
Relevant Pages
|