我现在正在研究如何编写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 的 ArrayAccess
和 Traversable
接口(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/