2016-09-14 162 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數組 –