Mysqli - 当用mysql打开2个连接到同一主机但是不同的数据库时,mysqli会打开一次连接吗?

P. *_*ski 4 php mysqli

当我遇到这样的情况时:

$databaseA = new mysqli($host,$user,$pass,"databaseA");
$databaseB = new mysqli($host,$user,$pass,"databaseB");
Run Code Online (Sandbox Code Playgroud)

当我定义时$databaseB,mysqli是否尝试重新打开连接$host,或者是否使用缓存连接$databaseA

谢谢

小智 12

假设您有充分的理由使用两个不同的数据库,使用单个连接实现此工作的唯一方法是具有访问这两个数据库的权限的用户.它会是这样的:

$db = new mysqli($host,$user,$pass); // connect to the MySQL server without specifying a database

mysqli_select_db('databaseA', $db); // Specify your default/most-used database
Run Code Online (Sandbox Code Playgroud)

如果未在查询中明确指定databaseB,MySQL将使用默认值(databaseA).因此,从databaseB获取一列而从databaseA获取两列的查询将如下所示:

$query = "SELECT databaseB.table.column, table.column, table.column2";
Run Code Online (Sandbox Code Playgroud)