【发布时间】:2017-10-18 18:46:23
【问题描述】:
我有一张简单的小桌子,我只想更新它。在文档中花费了数小时并进行了测试,但无法弄清楚。
我的桌子:
|environment |who|
-------------------
|ax |tom|
主键在“环境”上
我要做的就是将 'who' 设置为 'ben' where 'environment' = 'ax'。
我尝试过传统的做事方式和表达方式。我还尝试了 AWS 在其文档中使用的方括号表示法和 php.ini 的 array() 表示法。以下是我尝试过的一些方法。
1:
$result = $client->updateItem(array(
'ConditionExpression' => 'environment = :env',
'ExpressionAttributeValues' => array(
':env' => array(
'S' => 'environment'
),
':who' => array(
'S' => $who
)
),
'Key' => array( // REQUIRED
':env' => array(
'S' => $env
)
),
'ReturnValues' => 'UPDATED_NEW',
'TableName' => 'areas',
'UpdateExpression' => 'SET who = :who'
));
2:
$result = $client->updateItem([
'ConditionExpression' => 'environment = :env',
'ExpressionAttributeValues' => [
':env' => [
'S' => 'environment'
],
':who' => [
'S' => $who
]
],
'Key' => [
':env' => [
'S' => $env
]
],
'ReturnValues' => 'UPDATED_NEW',
'TableName' => 'areas',
'UpdateExpression' => 'SET who = :who'
]);
3:
$result = $client->updateItem(array(
'AttributeUpdates' => array(
'who' => array(
'Action' => 'PUT',
'Value' => array(
'S' => $who
)
)
),
'Key' => array(
'environment' => array(
'S' => $env
)
),
'TableName' => 'areas'
));
编辑:这是我得到的错误:
SerializationException (client): Start of list found where not expected - {"__type":"com.amazon.coral.service#SerializationException","Message":"Start of list found where not expected"}'
非常感谢任何帮助。
【问题讨论】:
-
您收到什么错误消息?你的帖子读起来像一个声明,而不是一个问题。确切的问题是什么?
-
@MarkB 我已经更新了我的帖子,现在包含我收到的错误消息。我尝试的每一种不同的方法都会遇到同样的错误。
标签: php amazon-web-services amazon-dynamodb aws-sdk