我正在尝试使用PHP SDK更新DynamoDB表中的表。这是错误:
com.amazon.coral.service#SerializationException 找到列表的开头
我猜我的数组格式有问题。我正在使用此documentation作为参考。
我发送的数组:
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"
}
}
}
}
}
答案 0 :(得分:0)
AttributeUpdates中的“population”错误地放在数组中。它应该是元素的关键,而不是元素本身。 “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')),
)
);