我正在尝试使用php sdk更新dynamodb表中的一个表。错误如下:
com.amazon.coral.service序列化异常
在不需要的位置找到列表开头
我猜我的数组格式有问题。我用这个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"
}
}
}
}
}
最佳答案
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')),
)
);
关于php - DynamoDB与PHP,update_item错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10660621/