2016-08-08 15 views
0

Ich versuche, mehr als 1000 Zeilen von Azur in PHP zu bekommen. Zunächst kann ich die Filterklasse nicht verwenden. die Namespace müssen hinzugefügt werden Filterklasse danach zu verwenden, während Schleife in Endlosschleife gng ist jede Hilfewie mehr als 1000 Zeilen in azure Tabellen retrahieren php

$ tableRestProxy = ServicesBuilder :: getInstance() -> createTableService ($ this-> Connection); $ filter = "(PartitionKey eq '$ id')";

$options = new QueryEntitiesOptions(); 
$options->setFilter(Filter::applyQueryString($filter)); 

$result = $tableRestProxy->queryEntities('test', $options); 
$entities = $result->getEntities(); 

$nextPartitionKey = $result->getNextPartitionKey(); 
$nextRowKey = $result->getNextRowKey(); 

while (!is_null($nextRowKey) && !is_null($nextPartitionKey)) { 

    $options = new QueryEntitiesOptions(); 
    $options->setNextPartitionKey($nextPartitionKey); 
    $options->setNextRowKey($nextRowKey); 
    $options->setFilter(Filter::applyQueryString($filter)); 

    $result2 = $tableRestProxy->queryEntities("test", $options); 
    $newentities = $result2->getEntities(); 
    $entities=array_merge($newentities, $entities);  

} 

Link m verwendet, ist PHP - Azure Table Storage in with more than 1000 entities

+0

Jedes Update für jetzt? –

Antwort

0

Sie setTop() Funktion der MicrosoftAzure\Storage\Table\Models\QueryEntitiesOptions Klasse nutzen, können die Top-X (Anzahl) Einheiten der Tabelle auszuwählen.

Und nach der Beschreibung bei https://github.com/Azure/azure-storage-php/blob/master/src/Table/Models/QueryEntitiesOptions.php#L148, können wir feststellen, dass die Filterklassen in die namespace MicrosoftAzure\Storage\Table\Models\Filters

bewegt haben Wenn Sie die Filterklassen in der neuen Azure Storage SDK für PHP verwenden möchten, können Sie die schließen versuchen können, Paket wie:

use MicrosoftAzure\Storage\Table\Models\Filters\QueryStringFilter; 

Bitte beachten Sie den folgenden Code-Schnipsel:

use MicrosoftAzure\Storage\Table\Models\QueryEntitiesOptions; 
use MicrosoftAzure\Storage\Table\Models\Filters\QueryStringFilter; 
$options = new QueryEntitiesOptions(); 
$filter = new QueryStringFilter("(RowKey eq '".$id."')"); 
$options->setFilter($filter); 
$options->setTop(1000); 
Verwandte Themen