PHP Azure表存储过滤器对除分区键以外的列进行过滤

时间:2013-11-03 15:01:56

标签: php azure azure-table-storage

我正在使用PHP Azure表存储REST API,当我使用除分区键以外的任何其他列来过滤数据集时,它给出了我唯一的错误

如果我使用以下过滤条件,它可以正常工作。

((PartitionKey ge '2013110100') and (PartitionKey le '2013110223'))

如果我添加除Parition键以外的任何其他列,则会出错。例如,当我使用下面的过滤器时,它会产生错误

((PartitionKey ge '2013110100') and (PartitionKey le '2013110223') and (cid <> '11081'))

它表示在非对象上调用成员函数getEntities()。

try {
        $result = $tableRestProxy->queryEntities("mytable", $filter);
    }
    catch(ServiceException $e){
        // Handle exception based on error codes and messages.
        // Error codes and messages are here: 
        // http://msdn.microsoft.com/en-us/library/windowsazure/dd179438.aspx
        $code = $e->getCode();
        $error_message = $e->getMessage();
        echo $code.": ".$error_message."<br />";
    }

    $entities = $result->getEntities();

我正在使用教程http://www.windowsazure.com/en-us/develop/php/how-to-guides/table-service/

中提供的逻辑

1 个答案:

答案 0 :(得分:1)

我认为您的查询语法本身存在错误。尝试更改您的查询:

((PartitionKey ge '2013110100') and (PartitionKey le '2013110223') and (cid <> '11081'))

((PartitionKey ge '2013110100') and (PartitionKey le '2013110223') and (cid ne '11081'))

请查看支持的比较运算符:http://msdn.microsoft.com/en-us/library/windowsazure/dd894031.aspx