用于DynamoDb的PHP在POST中的奇怪行为

时间:2013-11-19 10:03:21

标签: php post backend amazon-dynamodb

当我发出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'];
}

1 个答案:

答案 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页。 它可能会提供更多信息。希望它有所帮助。