ID: 14906 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: MySQL related Operating System: RedHat 7.1 PHP Version: 4.1.0 New Comment:
On my Slackware 3.6 box (not that it matters, since everything has been built from source [php 4.0.6, 4.1.1 and 4.1.2, mysql 3.22.30]), I get essentially the same results. I don't remember if the resource IDs were the same, but I rewrote a few of my database libraries because of this. Basically, I had to write my database wrappers to never select a database and always user mysql_db_query() because if someone using the library connected with the same host/user/pass and selected a database, the most current one would be used by both/all connections. Please don't take mysql_db_query() away until this is sorted out. (and maybe not even then) :) Previous Comments: ------------------------------------------------------------------------ [2002-01-07 07:27:54] [EMAIL PROTECTED] PHP 4.1.0 and MySQL 3.23.41-log The function mysql_select_db set the db for other link identifiers than specified. Doc: bool mysql_select_db (string database_name, resource [link_identifier]) mysql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mysql_connect() was called without arguments, and use it. The table my_table is in db1 but the active database seems to be test on link #8. Here the result: mysql_pconnect() id1=Resource id #8 mysql_select_db(db1,Resource id #8) mysql_pconnect() id2=Resource id #9 mysql_select_db(test,Resource id #9) mysql_query(select * from my_table,Resource id #8) failed: Table 'test.my_table' doesn't exist Here the source: $id1=mysql_pconnect($host,$user,$pass); if($id1==false){ die("<br>mysql_pconnect() failed: ".mysql_error()); } echo "<br>mysql_pconnect() id1=$id1"; $b=mysql_select_db($db1,$id1); if($b==false){ die("<br>mysql_select_db($db1,$id1) failed:".mysql_error()); } echo "<br>mysql_select_db($db1,$id1)"; $id2=mysql_pconnect($host,$user,$pass); if($id2==false){ echo "<br>mysql_pconnect() failed: ".mysql_error(); } echo "<br>mysql_pconnect() id2=$id2"; $b=mysql_select_db($db2,$id2); if($b==false){ die("<br>mysql_select_db($db2,$id2) failed:".mysql_error()); } echo "<br>mysql_select_db($db2,$id2)"; $sql='select * from my_table'; $result=mysql_query($sql,$id1); if($result==false){ die("<br>mysql_query($sql,$id1) failed:".mysql_error()); } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=14906&edit=1