2011-06-23 130 views
0

嗨,我用我的数据库的MySQL。只是我试图通过循环连接MySQL数据库,但失败了,我不能,是否有任何otherway做到这一点如何连接MySQL Db通过循环

我试的代码是这样

while($row = mysql_fetch_array($query)) { 

    $temp = "db".$row["listid"]; 
    $temp = mysql_connect("localhost","root","", true); 
    mysql_select_db($row["databasename"],$temp); 
} 

是任何其他的方式来做到这一点。

+6

请问为什么?? – alex

+0

这是什么意思? –

+0

因为我打算把我所有的应用程序都集成到一个管理控制中,只需要一次登录就可以了管理所有数据库相关的行为,我有超过6个数据库它不难编写evey数据库的单独mysql_connect语句,它只是尝试。在我的知识中,我知道这是不可能的,但一些天才有这个想法..所以我问这个问题。 – Kannan

回答

1

尝试:

$res = mysql_query($query); 
while($row = mysql_fetch_array($res)) { 
    $name = "db".$row["listid"]; 
    $temp = mysql_connect("localhost","root","", true) or die('Could not connect: ' . mysql_error()); 
    mysql_select_db($row["databasename"],$temp); 
    $res = mysql_query($query, $temp); 
} 

,并告诉我们你的错误 - 但是,作为第一个评论,这是极不建议

+0

感谢您的回复Tudor Constantin - mysql_connect语句不显示任何具体错误,错误是“mysql_fetch _array提供的参数不是validargument或没有找到数据库连接”。例如我有5个数据库通过循环我想要像这样,为数据库1连接$ db1,为数据库2连接$ db2。如果我使用上面的代码,它只是在变量名称$ temp中创建一个连接。 – Kannan

+0

我修改了代码 - 它设置了一个初始的'$ res'作为结果集,然后在它改变它的时候 - 这是你想要的吗?也许你需要在主内部另外一个'while' –

+0

'$ res'被while循环覆盖。 – Arvin

0

你只需要一个数据库连接。

一旦连接到数据库,它就可以用于该页面的生命周期(请求)。

如果您需要切换数据库,也将使用相同的连接(除非需要不同的凭据。

如果是跨数据库查询,如果它们是相同的MySQL服务器上,并且初始连接的用户那么你可以用数据库名称为数据库表加上前缀