当我发出POST请求时,DynamoDb不希望返回该项目的任何值。请注意,我已经对密钥进行了硬编码。
如果是POST请求,则该值为null,但如果作为脚本执行,则返回正确的答案。在这两种情况下,item_id都会检出(例如999)。
在发布POST的情况下,为什么会出现空结果?
if($_POST){
$item_id = getID($_COOKIE['_cookie']);
}
else{
$item_id = 999;
}
if($item_id!=null){
//$item_id is totally fine in both cases. Verified by echoing output
$res = $client->getItem(array(
'ConsistentRead' => false,
'TableName' => 'table123',
'Key' => array(
'item_id' => array('N' => 999)
)
));
echo $res['Item']['user_id']['N'];
}
答案 0 :(得分:1)
请在getItem中尝试此操作:'item_id'=>数组('N'=>'999'),即添加单引号
在http://docs.aws.amazon.com/aws-sdk-php/guide/latest/aws-sdk-php-guide.pdf的PHP SDK指南的检索项部分下有一个示例。检查第45页。 它可能会提供更多信息。希望它有所帮助。