我想在php中选择两个数据库但是当我编码它时会给出错误我如何在这里选择两个数据库是我已经尝试过的代码:
<?php
@session_start ();
$dbhost = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "domain102,main102";
$mysqli = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname);
if ($mysqli->connect_errno)
{
echo ("Failed to connect to MySQL: " . $mysqli->connect_error);
}
$GLOBALS ['mysqli'] = $mysqli;
?>
这里是错误
Warning: mysqli::mysqli(): (HY000/1049): Unknown database 'domain102,main102'
答案 0 :(得分:8)
尝试
$dbname1 = "domain102";
$dbname2 = "main102";
$mysqli1 = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname1);
if ($mysqli1->connect_errno)
{
echo ("Failed to connect to MySQL: " . $mysqli1->connect_error);
}
$mysqli2 = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname2);
if ($mysqli2->connect_errno)
{
echo ("Failed to connect to MySQL: " . $mysqli2->connect_error);
}
您可以使用same instance
连接两个数据库,甚至可以在single instance
中说明。
答案 1 :(得分:3)
“选择数据库”只是意味着您为要查询的服务器中的数据库设置默认。如果您不这样做,则必须在查询中为所有表添加前缀:
SELECT * FROM database1.table1
我想这就是你真正想要做的事情。您不能一次“选择两个数据库”,因为“选择数据库”的含义定义没有意义,但您可以通过在表中添加数据库名称前缀来查询未选择的其他数据库。查询。
您也可以随时使用mysqli::select_db
切换到您所连接服务器上的其他数据库。
答案 2 :(得分:1)
您可以连接到一个数据库服务器并按@deceze建议创建查询。
此外,您可以使用USE
关键字查询来切换数据库
USE db1;
SELECT COUNT(*) FROM mytable; # selects from db1.mytable
USE db2;
SELECT COUNT(*) FROM mytable; # selects from db2.mytable
答案 3 :(得分:0)
使用mysqli :: select_db在同一台服务器上切换数据库:
$link = new mysqli($dbhost, $dbusername, $dbpassword, $dbname);
then
$link->select_db($dbname2);
答案 4 :(得分:-2)
如果您想使用两个数据库 只需使用以下代码:
$dbhost = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "domain102";
$mysqli = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname);
$dbname = "main102";
$mysqli1 = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname);