Beispiel #1
0
function merge_users(GDO_Database $db_from, GDO_Database $db_to, array &$db_offsets, $prefix, $prevar)
{
    $db_offsets['user_name'] = array();
    GDO::setCurrentDB($db_from);
    $users = GDO::table('GWF_User');
    if (false === ($result = $users->select('*', '', 'user_id ASC'))) {
        echo GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__));
        return false;
    }
    GDO::setCurrentDB($db_to);
    $to_users = GDO::table('GWF_User');
    $off = $db_offsets['GWF_User'];
    while (false !== ($user = $users->fetch($result, GDO::ARRAY_A))) {
        $oldname = $user['user_name'];
        $newname = merge_user_name($user['user_name'], $to_users, $prefix, $prevar);
        $user['user_name'] = $newname;
        if ($oldname !== $newname) {
            $db_offsets['user_name'][$oldname] = $newname;
        }
        $user['user_id'] += $off;
        $to_users->insertAssoc($user);
        GWF_Cronjob::log('Added user ' . $user['user_name'] . ' with id ' . $user['user_id']);
    }
    $users->free($result);
    return true;
}