2013-06-07 8 views
5

私は自分のdynamodbテーブルを照会できますが、実際の値を取得したいだけです。私はフォーマット出力を望んでいません。この同じ質問は、Javaのために、ここで回答されているが、私はPHPソリューションを探しています: Retrieving just the item value from a dynamodb table?dynamodb getitem phpを使用しています - 私は値を取得したいだけです

ここでは私のGetItemクエリです:ここで

$response = $dynamodb->getItem(array(
    "TableName" => $tableName, 
    "ConsistentRead" => true, 
    "Key" => array(
     "userguid" => array(Type::STRING => $userguid) 
    ), 
    "AttributesToGet" => array("token") 
)); 
print_r($response["Item"]["token"]); 

が出力されます。

Array 
(
    [S] => 9d194513 
) 

私が戻っておきたいのは、

9d194513 

私は論理的な答えは最後の行を次のように変更することです:

print_r($response["Item"]["token"]["S"]); 

しかし、私のコードは何も返されません。もちろん、ここでPHPを学んでいると、どんな助けにもなります。

+0

'var_dump($ response);'あなたが印刷するものを投稿できますか? – Fabio

+0

普通の古い 'var_dump($ response);'は8098行を返します。私は 'var_dump($ response [" Item "[token"]); 'の出力を探していると仮定しました。これは次のようになります: 'array(1){ [" S "] => string(8)" 9d194513 " } ' – user2463882

+0

はい、私は疑問に思っていました。 'echo $ response [" Item "] [" token "] [" S "];'または 'print($ response [" Item "] ["トークン "] [" S "]);'は配列ではないので – Fabio

答えて

3

後で使用するためにprint_r機能、ちょうどどちらかechoあなたの変数変数で

echo $response["Item"]["token"]["S"]; 

またはストアを使用しないでください

$res_token = $response["Item"]["token"]["S"]; 
+0

ちょうど情報のために、なぜ 'print_r'を使うのがうまくいかないのですか? – Geek

+0

@Geek:ドキュメントから: "print_r()は、人間が読めるように変数に関する情報を表示します。" 1つまたは複数の文字列を出力します。 " – TheCarver

+0

DynamoDbからAWS SDKで単純なKey:Valueペアレスポンスを取得する方法はありますか?データなし – Playnox

2

またModelに組み込まれてgetPath便利なメソッドを使用することができますSDKが操作のために返すオブジェクト。 SDKでの応答での作業の詳細については

echo $response->getPath('Item/token/S'); 

AWS SDK for PHP User GuideResponse Modelsページを参照してください。

関連する問題