php - DynamoDB PHP 返回值

标签 php amazon-web-services error-handling return amazon-dynamodb

我现在正在研究如何编写DynamoDB的php代码。

我遇到了一些问题。

1)如何知道连接数据库失败

$aws = Aws::factory('config.php');
$client = $aws->get('DynamoDb');

返回客户端是一个对象,但我不知道如何在我的 php 代码中检查连接成功或失败。

2)当我尝试 putItem、updateItem 和 deleteItem 时遇到同样的问题

$result = $client->putItem(array(
        ...
    ));

我阅读了PHP文档的AWS SDK,但找不到解决方案。

这些函数返回值是一个数组(?),没有属性表示成功或失败。

只有 queryItem() 可以通过 'Count' 属性进行检查。

我应该如何在我的 php 代码中检查这些?

提前致谢。

最佳答案

关于 #1,“连接”不应被视为与 MySQL 数据库的连接相同的方式。对 DynamoDB 的请求是通过 HTTP(S) 发出的,这不需要您建立预先连接。创建客户端对象时,您并未建立与 DynamoDB 的连接,您只是配置一个向 DynamoDB 发出请求的 HTTP 客户端。

关于#2,我认为你应该阅读SDK's Getting Started Guide ,特别是关于使用建模响应检测和处理错误的部分。基本上,如果请求成功,您会得到 Guzzle\Service\Resource\Model对象,其行为类似于数组(即实现 PHP 的 ArrayAccessTraversable 接口(interface))。如果请求失败,则会抛出异常。对于 DynamoDB,该异常将为 Aws\DynamoDb\Exception\DynamoDbException .

try {
    $result = $client->putItem(array(
        'Table' => 'my-table',
        // ...
    ));
} catch (DynamoDbException $e) {
    // The PutItem operation failed.
    echo $e->getMessage();
}

关于php - DynamoDB PHP 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25423101/

相关文章:

php - 是否可以在不使用 cronjob 的情况下让 PHP 脚本每小时左右运行一次?

node.js - Node.js后端/服务器: Cannot `require` in `new Function` instance

python - 如何使用 Connexion + Tornado 更改所有错误的错误格式

testing - 是否有一种与浏览器无关的方法来检测 Watin 的客户端脚本错误?

php - 在php中无需创建数组即可访问对象

php - 如果目前实际上没有必要,是否愿意将大命令分解为较小的命令?

php - 将数字转换为星期几

amazon-web-services - AWS Pricing API 中使用的 AWS ELB 的服务代码是什么

amazon-web-services - 如何将我的结构放入Rust中用于AWS Kinesis的PutRecordInput中?

node.js - 托管在 AWS linux 上的 NodeJs 网站无法访问