2013-06-07 9 views
5

Sono in grado di interrogare le mie tabelle dynamodb, ma voglio solo recuperare il valore attuale. Non voglio l'output di formattazione. Questa stessa domanda è stato risposto qui per Java, ma sto cercando la soluzione PHP: Retrieving just the item value from a dynamodb table?dynamodb getitem using php - Voglio solo recuperare il valore

Ecco la mia domanda getitem:

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

Ecco l'output:

Array 
(
    [S] => 9d194513 
) 

Tutto quello che voglio tornare è:

9d194513 

Ho assunto il la risposta logica sarebbe quella di modificare l'ultima riga in:

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

Ma poi il mio codice non restituisce nulla. Ovviamente sto ancora imparando PHP qui e ogni aiuto sarebbe apprezzato.

+0

'var_dump ($ response);' puoi pubblicare ciò che stampa? – Fabio

+0

un semplice vecchio 'var_dump ($ response);' restituisce 8098 linee. Supponevo che stavate cercando l'output di 'var_dump ($ response [" Item "] [" token "]);'. Questo restituisce: 'array (1) { [" S "] => string (8)" 9d194513 " } ' – user2463882

+0

Sì ho visto sulla domanda, prova con 'echo $ response [" Item "] [" token "] [" S "];' o 'print ($ response [" Item "] [" token "] [" S "]);' poichè non è un array – Fabio

risposta

3

Non usare print_r funzione, a soli sia echo le variabili

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

o conservare in una variabile per un uso successivo

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

Solo per informazioni, perché l'uso di 'print_r' non funziona? – Geek

+0

@Geek: Dalla documentazione: "print_r() visualizza informazioni su una variabile in un modo leggibile dagli esseri umani." e "echo emette una o più stringhe". – TheCarver

+0

C'è un modo per ottenere una chiave semplice: la coppia di valori di risposta da DynamoDb con AWS SDK? senza tipi di dati – Playnox

2

È inoltre possibile utilizzare il metodo getPath convenienza integrato nel Model oggetto che l'SDK restituisce per le operazioni.

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

Per ulteriori informazioni su come lavorare con le risposte del SDK, vedere la pagina Response Models nel AWS SDK for PHP User Guide.

Problemi correlati