【发布时间】:2010-03-25 05:57:35
【问题描述】:
我希望能够通过循环从当前数据库切换到多个数据库:
$query = mysql_query("SELECT * FROM `linkedin` ORDER BY id", $CON ) or die( mysql_error() );
if( mysql_num_rows( $query ) != 0 ) {
$last_update = time() / 60;
while( $rows = mysql_fetch_array( $query ) ) {
$contacts_db = "NNJN_" . $rows['email'];
// switch to the contacts db
mysql_select_db( $contacts_db, $CON );
$query = mysql_query("SELECT * FROM `linkedin` WHERE token = '" . TOKEN . "'", $CON ) or die( mysql_error() );
if( mysql_num_rows( $query ) != 0 ) {
mysql_query("UPDATE `linkedin` SET last_update = '{$last_update}' WHERE token = '" . TOKEN . "'", $CON ) or die( mysql_error() );
}else{
mysql_query("INSERT INTO `linkedin` (email, token, username, online, away, last_update) VALUES ('" . EMAIL . "', '" . TOKEN . "', '" . USERNAME . "', 'true', 'false', '$last_update')", $CON ) or die( mysql_error() );
}
}
mysql_free_result( $query );
}
// switch back to your own
mysql_select_db( USER_DB, $CON );
它确实插入和更新来自其他数据库的详细信息,但它也插入和编辑来自当前用户数据库的我不想要的数据。有什么想法吗?
【问题讨论】:
-
哇,我只能想象这浪费了多少带宽......
-
哇,多么有建设性和有用的评论。
-
请重新命名您的问题。您不是在“断开和连接”多个数据库。您只是在更改架构。
-
另外,您对每封电子邮件都有单独的数据库吗?哇。这真是糟糕的数据库建模。此外,如果有帮助,
while()语句中的mysql_fetch_array()调用将从周期 2 开始具有某种未定义的行为,因为它与以前的模式不同。您应该执行两个循环:在第一个循环中,您从主数据库中获取所有内容并将其存储在一个数组中,然后在第二个循环中处理它。 -
不,不是每封电子邮件,只是将其称为参考。
标签: php mysql database disconnect