2016-09-14 159 views
0

这是我的PHP代码Azure的表存储PHP错误

<?php 
// Load Azure Drivers 
require_once '../vendor/autoload.php'; 

use WindowsAzure\Common\ServicesBuilder; 
use MicrosoftAzure\Storage\Common\ServiceException; 
use MicrosoftAzure\Storage\Table\Models\QueryEntitiesOptions; 


// Connection String 
$connectionString = 'DefaultEndpointsProtocol=https;AccountName=<account_name>;AccountKey=<account_key>=='; 

// Create table REST proxy. 
$tableRestProxy = ServicesBuilder::getInstance()->createTableService($connectionString); 


$user_input = "Username eq '<user>'"; 

try { 
    $result = $tableRestProxy->queryEntities("<table>", $user_input); 
} 
catch(ServiceException $e){ 
    echo "<h1>Error querying, please contact Admin.</h1>"; 
    die(); 
} 

$entities = $result->getEntities(); 
foreach($entities as $entity){ 
    echo $entity; 
} 
?> 

我已经删了所有的连接和表信息。但是,当我使用演示代码时,一切正常。但我想检索整行。当我执行这个我得到这个错误

Catchable fatal error: Object of class MicrosoftAzure\Storage\Table\Models\Entity could not be converted to string 

任何想法?

回答

0

一般而言,您正在尝试echo提出此问题的对象。由于您的循环语句中的$entity是一个对象,您不能直接echo它。

queryEntities()返回QueryEntitiesResult对象,然后调用getEntities()函数返回Entity对象的数组。

所以,你可以使用函数$entity->getXXXX()$entity->getPropertyValue({key})在表中存储的实体获取属性。

您可以参考a simple sample快速浏览一下。

+0

我想通了,$实体 - >的getProperty(“”)可以让我得到了财产,但反正是有列出一次所有属性,而不调用它们一个接一个? –

+0

目前,没有这样的功能 –

+0

好吧谢谢我设法使用foreach并将其解析为json数组 –