ID: 32866
User updated by: kevin at hatry dot com
Reported By: kevin at hatry dot com
Status: Bogus
Bug Type: MySQL related
Operating System: windows XP + linux
PHP Version: 4.3.11
New Comment:
thank you for your direct answer however this "solution" cannot work
with a heavily loaded website as it would open too much connections on
the mysql server :
for example a page called 50 times a second and opening 3 connections
at a the same time means 150 connections /sec to the mysql server
instead of 50 !
This situation is clearly one where the shared connection is useful.
i will try one last example to make sure you really know how i "want it
to work", please read it through and answer the last question below,
thank you.
the following script (without any function to make it clearer) :
<?php
$link1 = mysql_connect('localhost','root','',false);
$link2 = mysql_connect('localhost','root','',false);
echo "link1 : "; var_dump($link1);
echo "link2 : "; var_dump($link2);
echo 'mysql thread : '.mysql_thread_id($link2)."\n";
mysql_close($link1);
echo "-- after closing link1 :\n";
echo "link1 : "; var_dump($link1);
echo "link2 : "; var_dump($link2);
echo 'mysql thread : '.mysql_thread_id($link2)."\n";
// this query works fine and that's ok with me
mysql_query('select * from user',$link2);
$link1 = NULL;
echo "-- after link1 = NULL :\n";
echo "link1 : "; var_dump($link1);
echo "link2 : "; var_dump($link2);
echo 'mysql thread : '.mysql_thread_id($link2)."\n";
// oops $link2 is no more usable to do queries,
// that's a bug for me !
mysql_query('select * from user',$link2); // line 28
?>
generate this output :
link1 : resource(4) of type (mysql link)
link2 : resource(4) of type (mysql link)
mysql thread : 16
-- after closing link1 :
link1 : resource(4) of type (mysql link)
link2 : resource(4) of type (mysql link)
mysql thread : 16
-- after link1 = NULL :
link1 : NULL
link2 : resource(4) of type (Unknown)
Warning: mysql_thread_id(): 4 is not a valid MySQL-Link resource in ...
on line 24
mysql thread :
Warning: mysql_query(): 4 is not a valid MySQL-Link resource in ... on
line 28
If you could please answer this one last question :
why does affecting "NULL" to $link1 make $link2 to become "Unkown" ?
In other words, why don't we see this output instead :
link1 : resource(4) of type (mysql link)
link2 : resource(4) of type (mysql link)
mysql thread : 16
-- after closing link1 :
link1 : resource(4) of type (Unknown)
link2 : resource(4) of type (mysql link)
mysql thread : 16
-- after link1 = NULL :
link1 : NULL
link2 : resource(4) of type (mysql link)
mysql thread : 16
If this is a feature than it should be documented as it is not obvious
that changing the value of the resource variable will close the
connection, even if it has been closed before.
--
Edit this bug report at http://bugs.php.net/?id=32866&edit=1