关于mysql_connect的new_link参数

假设在127.0.0.1上有test1和test2两个库, 其中库test1库中有test1表,test2中有test2表

$servername = "127.0.0.1";
$username = "root";
$password = "root";
$conn1 = mysql_connect($servername$username$password);
mysql_select_db('test1', $conn1);
$conn2 = mysql_connect($servername$username$password);
mysql_select_db('test2', $conn2);

//这一句会报错:Table 'test2.test1' doesn't exist,因为$conn2的连接参数与$conn1相同,所以$conn2并没有打开新连接,而是返回$conn1,所以执行下面这一句代码的时候,数据库已经被切换到test2。如果不想报错,可将上面第二句代码改为$conn2 = mysql_connect($servername, $username, $password,true);

$dt = mysql_query('select * from test1', $conn1);
if(false==$dt)
{
    echo mysql_error($conn1);
}
while ($row = mysql_fetch_assoc($dt)) {
    echo var_dump($row);


 

将下面代码保存为http://localhost/mysql.php,然后访问此页面,在页面结束之前使用Navicat服务器监控localhost的数据库连接

$servername = "127.0.0.1"; 

$username = "root";
$password = "root";
$conn1 = mysql_connect($servername$username$password);
$conn2 = mysql_connect($servername$username$password);
sleep(10);

 发现进程列表中只有一个连接,

如果将第5行代码改为$conn2 = mysql_connect($servername$username$password,true);访问页面,发现进程列表中有2个连接 

如果将第5行代码改为$conn1 = mysql_connect($servername$username$password,true);访问页面,发现进程列表中只有1个连接(对一个资源变量赋值一个新的资源ID,会自动释放上一个资源?)

posted @ 2011-11-29 11:41  再快一点  阅读(2059)  评论(0编辑  收藏  举报