Я использую DynamoDb в PHP, но я не могу обновить свои элементы (набор строк).
$friends_list = array();
array_push( $friends_list, "user1" );
$response = $client->updateItem(array(
'TableName' => 'myTable',
'Key' => array(
'id' => array(Type::STRING => $userid),
'username' => array(Type::STRING => $username)
),
'AttributeUpdates' => array(
'friends_list' => array(
'Value' => array(Type::STRING_SET => $friends_list),
'Action' => AttributeAction::PUT)
),
'ReturnValues' => 'ALL_NEW'
));
Я получаю сообщение об ошибке:
PHP Fatal error: Uncaught Aws\DynamoDb\Exception\DynamoDbException: AWS Error Code: SerializationException, Status Code: 400, AWS Request ID: EG1EUDVTNPRST9DAA94NQP592BVV4KQNSO5AEMVJF66Q9ASUAAJG, AWS Error Type: client, AWS Error Message: class java.lang.Short can not be converted to an String, User-Agent: aws-sdk-php2/2.7.5 Guzzle/3.9.2 curl/7.35.0 PHP/5.5.9-1ubuntu4.5
thrown in /var/www/html/aws-sdk-php-master/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91
Зачем?
$ friends_list является массивом, но не может обновляться с помощью StringSet.
этот код не является ошибкой:
'Value' => array (Type :: STRING_SET => array ("user1")),
но этот код получает сообщение об ошибке:
'Value' => массив (Type :: STRING_SET => $ friends_list),
Я не могу понять
Задача ещё не решена.
Других решений пока нет …