2013-06-07 31 views
5

Tôi có thể truy vấn bảng dynamodb của mình, nhưng tôi chỉ muốn truy xuất giá trị thực. Tôi không muốn đầu ra định dạng. Câu hỏi này tương tự đã được trả lời ở đây cho Java, nhưng tôi đang tìm kiếm các giải pháp PHP: Retrieving just the item value from a dynamodb table?dynamodb getitem bằng cách sử dụng php - Tôi chỉ muốn truy xuất giá trị

Đây là truy vấn GetItem tôi:

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

Đây là kết quả:

Array 
(
    [S] => 9d194513 
) 

Tất cả những gì tôi muốn quay lại là:

9d194513 

Tôi giả định câu trả lời hợp lý sẽ là thay đổi dòng cuối cùng thành:

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

Nhưng sau đó mã của tôi không trả lại gì cả. Rõ ràng vẫn đang học PHP ở đây, và bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

+0

'var_dump ($ response);' bạn có thể đăng nội dung được in không? – Fabio

+0

một var_dump cũ ($ response), 'trả về 8098 dòng. Tôi giả định bạn chỉ cần tìm đầu ra của 'var_dump ($ response [" Item "] [" token "]);'. Điều này trả về: 'mảng (1) { [" S "] => chuỗi (8)" 9d194513 " } ' – user2463882

+0

Có tôi nhìn thấy trên câu hỏi, thử với 'echo $ response [" Item "] [" token "] [" S "];' hoặc 'in ($ response [" Item "] [" token "] [" S "]);' vì nó không phải là mảng – Fabio

Trả lời

3

Không sử dụng print_r chức năng, chỉ cần một trong hai echo biến

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

hoặc cửa hàng của bạn trong một biến cho sau này sử dụng

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

Chỉ để biết thông tin, tại sao sử dụng 'print_r' không hoạt động? – Geek

+0

@Geek: Từ tài liệu: "print_r() hiển thị thông tin về biến số theo cách mà con người có thể đọc được". và "echo xuất ra một hoặc nhiều chuỗi." – TheCarver

+0

Có cách nào để nhận phản hồi Key: Value value đơn giản từ DynamoDb với AWS SDK không? không có kiểu dữ liệu – Playnox

2

Bạn cũng có thể sử dụng phương pháp getPath tiện được xây dựng vào Model đối tượng mà SDK trả về cho các hoạt động.

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

Để biết thêm thông tin về làm việc với phản ứng trong SDK, hãy xem trang Response Models trong AWS SDK for PHP User Guide.

Các vấn đề liên quan