假设在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,会自动释放上一个资源?)