ID: 35993
Updated by: [EMAIL PROTECTED]
Reported By: andreas at fink dot org
-Status: Open
+Status: Bogus
Bug Type: MySQL related
Operating System: MacOS X & Linux
PHP Version: 5.1.2
New Comment:
Please stop to reopen this bug, add proper error handling instead to
your source and check why you're getting an invalid result.
Previous Comments:
------------------------------------------------------------------------
[2006-01-13 18:36:44] andreas at fink dot org
$db1_handle=mysql_connect("127.0.0.1","test","test");
mysql_select_db("test1",$db1_handle);
$db2_handle=mysql_connect("127.0.0.1","test","test", true);
mysql_select_db("test2",$db2_handle);
gives:
array(1) {
[0]=>
string(8) "testdata"
}
---------------------------
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
result resource in /Users/afink/test2.php on line 19
Now is this a bug or not?
------------------------------------------------------------------------
[2006-01-13 18:30:12] [EMAIL PROTECTED]
>$db1_handle=mysql_pconnect("127.0.0.1","test","test");
>$db2_handle=mysql_pconnect("127.0.0.1","test","test", true);
Do you read what I'm writing or you just ignore it?
Try to open the docs and read whether the 4th parameter of
mysql_Pconnect() is the same as the 4th parameter of mysql_Connect().
Again, you're using THE SAME PERSISTENT CONNECTION returned by
Pconnect().
Please stop reopening this report, there is no bug.
------------------------------------------------------------------------
[2006-01-13 18:19:47] andreas at fink dot org
Gosh. Please CHECK what I provided before putting it to bogous again.
THIS IS DEFINITIVELY A BUG. It just doesnt occur in all scenarios. Your
code works here too but mine doesn't and its not obvious why not. It
apparently depends what you do with Mysql and what user you use.
Test EXACTLY THIS and not with user "root" or anything else:
1st. rename table testdata to testdata2 in database test2
2nd:
<?php
$db1_handle=mysql_pconnect("127.0.0.1","test","test");
mysql_select_db("test1",$db1_handle);
$db2_handle=mysql_pconnect("127.0.0.1","test","test", true);
mysql_select_db("test2",$db2_handle);
$query = "show tables";
$result1 = mysql_query($query,$db1_handle);
while ($line = mysql_fetch_row ( $result1 ) ) {
var_dump($line);
}
echo "---------------------------\n";
$query = "show tables";
$result2 = mysql_query($query,$db2_handle);
while ($line = mysql_fetch_row ( $result2 ) ) {
var_dump($line);
}
?>
results in:
vpn5:~ afink$ php test2.php
array(1) {
[0]=>
string(8) "testdata"
}
---------------------------
array(1) {
[0]=>
string(8) "testdata"
}
The SECOND one however MUST BE "testdata2"
So its doing it at the WRONG DB.
mysql> use test1
Database changed
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| testdata |
+-----------------+
1 row in set (0.01 sec)
mysql> use test2
Database changed
mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| testdata2 |
+-----------------+
1 row in set (0.00 sec)
mysql>
------------------------------------------------------------------------
[2006-01-13 17:58:28] [EMAIL PROTECTED]
<?php
$db1_handle=mysql_connect("127.0.0.1","root","", true);
mysql_select_db("test",$db1_handle);
$db2_handle=mysql_connect("127.0.0.1","root","", true);
mysql_select_db("mysql",$db2_handle);
$query = "show tables";
$result1 = mysql_query($query,$db1_handle);
while ($line = mysql_fetch_row ( $result1 ) ) {
var_dump($line);
}
echo "---------------------------\n";
$query = "show tables";
$result2 = mysql_query($query,$db2_handle);
while ($line = mysql_fetch_row ( $result2 ) ) {
var_dump($line);
}
?>
This code works perfectly here.
------------------------------------------------------------------------
[2006-01-13 15:14:21] andreas at fink dot org
Tried the suggestion in two ways:
$db1_handle=mysql_connect("127.0.0.1","test","test",1);
mysql_select_db("test1",$db1_handle);
$db2_handle=mysql_connect("127.0.0.1","test","test",1);
mysql_select_db("test2",$db2_handle);
result:
This query was executed on db1_handle:This is DB named test1
This query was executed on db2_handle:This is DB named test1
so still wrong
if I use mysql_connect instead I get
This query was executed on db1_handle:This is DB named test1
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
result resource in /Users/afink/test.php on line 14
This query was executed on db2_handle:
So it is still a bug.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/35993
--
Edit this bug report at http://bugs.php.net/?id=35993&edit=1