Php 多数据库查询

Php 多数据库查询,php,mysql,Php,Mysql,我在连接处添加了mysql_errno()。错误是第二个数据库不存在。这就是为什么查询无法继续。那么,连接这2个数据库的正确代码是什么 //database connection $serverhost = "localhost"; //put in your mysql server host #example : localhost $databasename1 = "database1"; //1st database name $databasename2

我在连接处添加了mysql_errno()。错误是第二个数据库不存在。这就是为什么查询无法继续。那么,连接这2个数据库的正确代码是什么

//database connection  
 $serverhost = "localhost"; //put in your mysql server host #example : localhost
    $databasename1 = "database1"; //1st database name
        $databasename2 = "database2"; // 2nd database name 
    $loginname = "root"; //put in your mysql username
    $loginpswd = "*****"; //put in your mysql password

$conn1 = mysql_connect($serverhost,$loginname,$loginpswd);
mysql\u select\u db($databasename1,$conn1); echo mysql_errno($conn1)。": " . mysql_错误($conn1)。“\n”


mysql\uu
api也不推荐使用,您应该使用
mysqli
PDO
。我建议使用
PDO
,因为它支持多个DBMS

mysql\u query
接受资源或连接作为第二个参数。不能在同一个查询中使用两个不同的连接,但从外观上看,不需要两个不同的连接。正如@Dagon所指出的,mysql\u查询将使用最新打开的连接,因此您的第一个连接甚至没有被使用

您应该能够只使用一个到MySQL服务器的连接,并在查询中指定数据库,假设您的用户可以访问这两个数据库

问题很可能在于您的查询。尝试直接在MySQL服务器上运行它,看看它是否成功,如果确定要继续使用不推荐的MySQL api,则使用它

除了上面的回答,总是检查mysql错误也会有帮助。因此,如果在查询后添加以下行,则可以增强查询:

if(!$result) {

    echo mysql_error($conn1)
}

如果您想查看错误,请在查询中添加错误检查“如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。”因此在本例中将使用$conn2。但问题是实际的查询,他需要添加基本的错误检查to@Dagon是的,你是对的。我的回答只是指出了操作码中的问题,但作为一个注释太长了。@Dagon你能举一些例子来解释清楚吗。我没有办法解决它。Thanks@user3408496使用我的建议并查看
mysql\u error()
。我在编辑后的答案中添加了一个链接,che azeh在他的答案中添加了一个示例。错误表明第二个数据库不存在。所以我认为数据库连接代码是有问题的。那么我该怎么办呢?取决于OP是否根据我的建议更新了他的代码,$conn1在当前代码中未使用。因此,您可能应该将资源保留为空(删除$conn1)。@user3408496,使用错误消息和您所做的任何代码更改更新您的问题。@den您没有包含错误消息,为什么仍使用两个连接?@den,您读过我的答案了吗?使用两个数据库不需要两个连接。您的连接是完全冗余的,
$conn1
甚至从未使用过,因为
mysql\u query
仅在未指定连接的情况下使用上次打开的连接。
if(!$result) {

    echo mysql_error($conn1)
}