Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何确保DynamoDB putItem成功_Php_Amazon_Amazon Dynamodb - Fatal编程技术网

Php 如何确保DynamoDB putItem成功

Php 如何确保DynamoDB putItem成功,php,amazon,amazon-dynamodb,Php,Amazon,Amazon Dynamodb,我使用AmazonSDKV2和aws factory for dynamoDB,我有一个简单的putItem操作,但我不知道如何确保putItem成功与否,因为putItem返回的模型不包含任何关于操作状态的信息。有什么想法吗? 这是我的密码 class DynamoLogger{ protected $client; protected $tableName; public function __construct(ServiceBuilder $builder, $tableName) {

我使用AmazonSDKV2和aws factory for dynamoDB,我有一个简单的putItem操作,但我不知道如何确保putItem成功与否,因为putItem返回的模型不包含任何关于操作状态的信息。有什么想法吗? 这是我的密码

class DynamoLogger{
protected $client;
protected $tableName;

public function __construct(ServiceBuilder $builder, $tableName)
{
    $this->client = $builder->get('dynamodb');
    $this->tableName = $tableName;
}

public function log(Request $request)
{
    $model = $this->client->putItem(array(
        'TableName' => $this->tableName,
        'Item' => array(
            'cc_id' => array(
                'S' => $request->get('cc_id')
            ),
            'date' => array(
                'S' => date('Y-m-d H:i:s') . substr((string)microtime(), 1, 8)
            ),
            'tt_id' => array(
                'N' => $request->get('tt_id')
            ),
            'action_name' => array(
                'S' => $request->get('name')
            ),
            'action_value' => array(
                'S' => $request->get('value')
            ),
            'gg_nn' => array(
                'S' => $request->get('gg_nn')
            ),
            'ffr_id' => array(
                'N' => $request->get('ffr_id')
            )
        ),
        'ReturnValues' => 'ALL_OLD'
    ));
    return $model;
}

}

使用AWS SDK for PHP 2.x,您应该假设任何返回而不引发异常的操作都是成功的。对于DynamoDB,如果出现错误,将抛出
Aws\DynamoDB\Exception\dynamodbeexception
(或子类)。此外,对于DynamoDB,在您的项目被写入至少2个位置之前,服务不会响应,以确保数据的完整性

此外,如果您对Guzzle请求和响应对象感兴趣,那么使用AWS SDK for PHP2.x,您可以使用长格式命令语法来访问它们。以下是一个例子:

$command = $client->getCommand('PutItem', array(/*...params...*/));
$model = $command->getResult(); // Actually executes the request

$request = $command->getRequest();
$response = $command->getResponse();
var_dump($response->isSuccessful());

另请参阅AWS SDK for PHP用户指南的第页。

对于AWS SDK for PHP 2.x,您应该假设任何返回而不引发异常的操作都是成功的。对于DynamoDB,如果出现错误,将抛出
Aws\DynamoDB\Exception\dynamodbeexception
(或子类)。此外,对于DynamoDB,在您的项目被写入至少2个位置之前,服务不会响应,以确保数据的完整性

此外,如果您对Guzzle请求和响应对象感兴趣,那么使用AWS SDK for PHP2.x,您可以使用长格式命令语法来访问它们。以下是一个例子:

$command = $client->getCommand('PutItem', array(/*...params...*/));
$model = $command->getResult(); // Actually executes the request

$request = $command->getRequest();
$response = $command->getResponse();
var_dump($response->isSuccessful());

另请参阅AWS SDK for PHP用户指南的详细说明。

这确实帮助很大。谢谢。那真的帮了大忙。谢谢