Я новичок в хранилище таблиц Azure, и я строил таблицу со ссылками на страницы с данными из хранилища таблиц Azure с помощью php.Вы можете проверить, например, здесь . Все работает нормально до 1000 записей, но когда я перехожу к 1010 записям, он возвращает эту ошибку: -
Fail: Code: 400 Значение: Bad Requestдетали (если есть): {"odata.error": {"code": "InvalidInput", "message": {"lang": "en-US", "value": "Один из входных данных запроса недействителен.
Так что этот код в примере queryPaginationEntitiesSample function {$options->setTop($numPerPage * ($page-1));}
вызывает эту ошибку. Может кто-нибудь помочь мне с этой проблемой?
function queryPaginationEntitiesSample($tableClient,$tableName,$numPerPage,$page,$filter) {
try {
$options = new QueryEntitiesOptions();
$options->setFilter(Filter::applyQueryString($filter));
if($page==1){
$options->setTop($numPerPage);
$options->setSelectFields(array('PartitionKey','RowKey','Timestamp'));
$result = $tableClient->queryEntities($tableName, $options);
$entities = $result->getEntities();
} else{
//skip $numPerPage * ($page-1) records
$options->setTop($numPerPage * ($page-1));
$options->setSelectFields(array('PartitionKey','RowKey','Timestamp'));
$result = $tableClient->queryEntities($tableName, $options);
$nRowKey = $result->getNextRowKey();
$nPartitionKey = $result->getNextPartitionKey();
$options = new QueryEntitiesOptions();
$options->setFilter(Filter::applyQueryString($filter));
$options->setTop($numPerPage);
$options->setNextRowKey($nRowKey);
$options->setNextPartitionKey($nPartitionKey);
$result = $tableClient->queryEntities($tableName, $options);
$entities = $result->getEntities();
}
return $entities;
}catch(ServiceException $e){
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message.PHP_EOL;
return null;
}
}