<?php require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/config/config.php'; exit; $vk = new \BW\Vkontakte($config['vk']); $dbConn = new \Simplon\Mysql\Mysql($config['db']['host'], $config['db']['user'], $config['db']['password'], $config['db']['database']); require __DIR__ . '/prepare-db.php.php'; // get group info $group = $vk->api('groups.getById', ['group_id' => $config['group_id'], 'fields' => 'members_count'])[0]; $dbConn->insert('groups', ['vk_id' => $group['id']]); $request_count = 1000; $members_count = $group['members_count']; $iterations_count = $members_count / $request_count; for ($i = 0; $i < $iterations_count; $i++) { echo 'Fetching users ' . $request_count * $i . ' - ' . ($request_count * $i + $request_count) . PHP_EOL; $members = $vk->api('groups.getMembers', ['group_id' => $config['group_id'], 'fields' => 'sex,bdate', 'offset' => $request_count * $i, 'count' => $request_count]); echo 'Inserting them to database' . PHP_EOL; foreach ($members['items'] as $member) { $birth_date = null; if (isset($member['bdate'])) { $bdateParts = explode('.', $member['bdate']); $birth_date = count($bdateParts) == 3 ? implode('-', array_reverse($bdateParts)) : null; } $putMemeber = ['vk_id' => $member['id'], 'sex' => $member['sex'], 'birth_date' => $birth_date]; try { $dbConn->insert('members', $putMemeber); } catch (Exception $e) { } } }