3

我正在尝试使用 PHP SDK 更新我的 DynamoDB 表中的表。这是错误:

com.amazon.coral.service#SerializationException 在不期望的地方找到列表的开始

我猜我的数组格式有问题。我正在使用此文档作为参考。

我要发送的数组:

array(3) {
  ["TableName"]=>
  string(7) "teacher"
  ["Key"]=>
  array(1) {
    ["HashKeyElement"]=>
    array(1) {
      ["S"]=>
      string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D"
    }
  }
  ["AttributeUpdates"]=>
  array(1) {
    [0]=>
    array(2) {
      ["population"]=>
      array(1) {
        ["Action"]=>
        string(3) "ADD"
      }
      ["Value"]=>
      array(1) {
        ["SS"]=>
        array(1) {
          [0]=>
          string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D"
        }
      }
    }
  }
}
4

1 回答 1

0

AttributeUpdates 中的“人口”被错误地放置在数组中。它应该是元素的键,而不是元素本身。“Value”和“Action”都是数组元素的一部分:结构应该是:

array(3) {
  ["TableName"]=>
  string(7) "teacher"
  ["Key"]=>
  array(1) {
    ["HashKeyElement"]=>
    array(1) {
      ["S"]=>
      string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D"
    }
  }
  ["AttributeUpdates"]=>
  array(1) {
    ["population"]=>
    array(1) {
      ["Value"]=>
      array(2) {
        ["SS"]=>
        array(1) {
          [0]=>
          string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D"
        }
        ["Action"]=>
        string(3) "ADD"
      }
    }
  }
}

来源:

$updateOptions = array(
  'TableName'    => 'teacher',
  'Key'          => array(
      'HashKeyElement'  => array('S' => '97770A6A-EF06-AF4A-3E30-87DAC0237F6D'),
  ),
  'AttributeUpdates' => array(
      'population'    => array('Value' => array('SS' => array('97770A6A-EF06-AF4A-3E30-87DAC0237F6D'), 'Action' => 'ADD')),
  )
);
于 2012-06-24T08:01:43.323 回答