Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysqli-当使用mysql打开到同一主机但不同数据库的2个连接时,Mysqli是否打开一次连接?_Php_Mysqli - Fatal编程技术网

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

Php Mysqli-当使用mysql打开到同一主机但不同数据库的2个连接时,Mysqli是否打开一次连接?,php,mysqli,Php,Mysqli,当我遇到这样的情况时: $databaseA = new mysqli($host,$user,$pass,"databaseA"); $databaseB = new mysqli($host,$user,$pass,"databaseB"); 当我定义$databaseB时,mysqli是尝试重新打开到$host的连接,还是使用$databaseA的缓存连接? 谢谢对于每个mysqli对象,都将有一个单独的连接 试试看 SHOW FULL PROCESSLIST; 在MySQL服务器

当我遇到这样的情况时:

$databaseA = new mysqli($host,$user,$pass,"databaseA");
$databaseB = new mysqli($host,$user,$pass,"databaseB");
当我定义
$databaseB
时,mysqli是尝试重新打开到
$host
的连接,还是使用
$databaseA
的缓存连接?


谢谢

对于每个mysqli对象,都将有一个单独的连接

试试看

SHOW FULL PROCESSLIST; 

在MySQL服务器上运行时,如果实现了示例,您将看到两个不同的进程从同一台主机连接。

如果您有充分的理由使用两个不同的数据库,那么使用一个连接的唯一方法是使用具有访问这两个数据库权限的用户。事情会是这样的:

$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
$query = "SELECT databaseB.table.column, table.column, table.column2";
如果在查询中没有显式指定databaseB,MySQL将使用默认值(databaseA)。因此,从databaseB获取一列,从databaseA获取两列的查询如下所示:

$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
$query = "SELECT databaseB.table.column, table.column, table.column2";

难道没有办法让mysqli在同一台主机上只使用一个连接吗?我的意思是,当我尝试建立第二个连接时,它会自动调用一个函数,比如
mysqli::select_db()
为什么首先要使用两个连接?这真的是个问题吗?我有你连接到一个和同一个数据库服务器,一个应该足够了。我会去的!谢谢。我想做一些更像$this->db->database_one->query(“更新我的表集…”)的事情$这->数据库->数据库->查询(“更新myothertable集合…”);如何对SELECT的示例运行更新或插入查询?不能选择数据库或表列。即使执行select table.column,每个查询都需要很长时间,我通常使用一个通配符“*”select*from.@Idealcastle euhm“更新数据库\u one.mytable SET…”,“更新数据库\u two.myothertable SET…”。这是吹牛!;]。。。和“从databaseB.yetanothertable中选择*”。如果需要,您甚至可以连接来自不同数据库的表。
mysqli_select_db('databaseA',$db)应该是
mysqli_select_db($db,'databaseA')