Я прочитал другие сообщения, такие как разбиение на страницы в simpledb, но мне немного не понятно, почему мой код не Работа. Я уверен, что проблема будет очевидна для кого-то, кого я просто не вижу.
//First I perform a count based on the suggestion in https://stackoverflow.com/questions/4623324/pagination-in-simpledb
$result = $client->select(array('SelectExpression' => "select count(*) from mydomain Where city='Dallas'"));
//I get back ~ 300 records when I check:$result['Items']['0']['Attributes']['0']['Value']
//Next I will query using count for the first 10 records so I can obtain the NextToken.
$result = $client->select(array('SelectExpression' => "select count(*) from mydomain Where city='Dallas' limit 10"));
//This works I see the 'NextToken'
$nexttoken = $result['NextToken'];
//Now I will fire off my final query this time I would like to use the NextToken
//My goal here is to pick up starting at record 11
$result = $client->select(array('SelectExpression' => "select * from mydomain Where city='Dallas' limit 10"),array('NextToken' => $nexttoken ));
Запрос выполнен успешно, но каждый раз я получаю первые 10 записей. Жду рекордов 11-20
Похоже, NextToken игнорируется. :-(
Я уверен, что это что-то глупое, но я просто не могу заставить NextToken работать.
Есть идеи, где я ошибаюсь?
Спасибо
=======================
Проблема решена, поэтому я хотел бы поделиться ею на случай, если кто-то еще столкнется с этой проблемой.
При использовании NextToken для AWS SDK для PHP необходимо создать единый массив, содержащий ОБЕИХ запрос и приведенный ниже пример NextToken.
$params = array('SelectExpression' => "select * from mydomain WHERE City ='Dallas' LIMIT 10");
$params['NextToken'] = $result['NextToken']; //Obtained from the count query we ran earlier
$result = $client->select($params);
Удачи.