duanjiu4498
duanjiu4498
2016-09-14 22:36
浏览 61
已采纳

Azure表存储PHP错误

This is my PHP code

<?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;
}
?>

I have censored out all the connection and table information. But everything works when I use the demo code. But I want to retrieve the full row. When I execute this I get this error

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

Any ideas?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanjianxi8439
    duanjianxi8439 2016-09-15 02:11
    已采纳

    Generally speaking, you are trying to echo an object which raised this issue. As the $entity in your looping statement is an object, you cannot directly echo it.

    The queryEntities() returns QueryEntitiesResult object, and then you call getEntities() function which returns Entity objects in array.

    So you can use functions $entity->getXXXX() or $entity->getPropertyValue({key}) to get the properties in your table storage's entity.

    You can refer to a simple sample for a quick glance.

    点赞 评论

相关推荐