Re: re-using variables



..oO(Jerry Stuckle)

Toby A Inkster wrote:

You have:

$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.

No, Toby.

$res will have the results of the second query. The resource returned
by the second query (or false) will overwrite what was in $res.

Try that with PDO and it will crash most likely. Overwriting $res will
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
.



Relevant Pages

  • Re: re-using variables
    ... $res is still going to be set as a result of your first query. ... Use unsetbetween each query. ... variables bound to resources when re-used may cause problems. ... 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 ...
    (comp.lang.php)
  • Re: re-using variables
    ... $res is still going to be set as a result of your first query. ... Use unsetbetween each query. ... previously allocated resource is freed) ... resources are reference variables unlike other ...
    (comp.lang.php)
  • Re: re-using variables
    ... $res is still going to be set as a result of your first query. ... Use unsetbetween each query. ... previously allocated resource is freed) ... So my would be question to our guru is can we safely re-use variables ...
    (comp.lang.php)
  • Re: re-using variables
    ... $res is still going to be set as a result of your first query. ... Use unsetbetween each query. ... variables bound to resources when re-used may cause problems. ... if you re-use $res without a call to ...
    (comp.lang.php)
  • Re: re-using variables
    ... $res is still going to be set as a result of your first query. ... Use unsetbetween each query. ... Ok if we need to call, mysql_free_result for mysql resources doesn't ... if you re-use $res without a call to ...
    (comp.lang.php)