我想在 php 中编写服务,其中 -
1) DynamoDB 将有包含两列 key 和 val 的表 t
2) 我将检查表 t 中是否存在某些键。
3) 如果存在读取数据..如果不存在则在表t中插入新的键值
我正在检查一些链接 http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonDynamoDB/put_item http://docs.aws.amazon.com/aws-sdk-php/guide/latest/quick-start.html
跟随哪个?
也有人可以给我简单的例子和准确的语法。
提前致谢。
最佳答案
完整的演练位于 HERE .它为您提供了凭据设置过程的分步概述,并在 PHP SDK for AWS 上附带了一个易于使用的插件。
AWS 设置 - AWS 不会为您逐步设置凭据设置,所以我会。1. 前往 AWS 并获取您的 PUBLIC_KEY 和 PRIVATE_KEY
2.打开终端
3. 如果您尚未创建凭据,请在终端的新页面中输入:
nano ~/.aws/credentials
nano
功能页面将打开。您将在顶部看到GNU nano 2.0.6...
。
4. 在
nano
页面中,输入:[default] aws_access_key_id = public_key_ABCDEFGHIJKLMNOPQRSTUVWXYZ aws_secret_access_key = private_key_s0m3_CR42Y_l3tt3rS_i5y0ur53cr3tK3y
5. 键入后,按 CONTROL + X(是的...Control,不是 Command)。
- 6. 点击 Y 然后 ENTER
- 7.获取 [AWS_SDK_PHP][4]
- 8.转到您的 Elastic Beanstalk
- 9. 当您完成应用创建后,您会看到带有绿色勾号的概览屏幕。看向一边并点击配置。
- 10. 在Software Configuration -> Document root: 输入:/
- 11. 在 Property Name -> AWS_ACCESS_KEY_ID 下输入:[your_access_key]
- 12. AWS_ACCESS_KEY_ID 下是 AWS_SECRET_KEY,输入:[your_secret_key]
- 13. 当您的 PHP 项目准备就绪时。将所有文件放在一个文件夹中。将文件夹命名为[whatever],然后压缩[whatever] 中的文件。不要压缩整个文件夹。只压缩文件夹中的文件。如果其中一个文件包含您的 index.php 或 index.html,您的项目将显示在 EBS 默认 URL 上。
- 14.您的项目应命名为Archive.zip (Mac)。转到 EBS,上传 zip,然后就可以了!全部通过 AWS 设置完成!
- 1.将AWS_SDK_PHP在一个空文件夹中
2. 在使用 SDK 的文件顶部(
index.php
或其他),输入:require 'aws/aws-autoloader.php'; date_default_timezone_set('America/New_York'); use Aws\DynamoDb\DynamoDbClient; $client = new DynamoDbClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => 'latest' ]);
- 数据类型
- S = 字符串
- N = 数
- B = 二进制
基本方法
描述表格
$result = $client->describeTable(array( 'TableName' => '[Table_Name]' )); echo $result;
放置元素
$response = $client->putItem(array( 'TableName' => '[Table_Name]', 'Item' => array( '[Hash_Name]' => array('S' => '[Hash_Value]'), '[Range_Name]' => array('S' => '[Range_Value]') ) )); //Echoing the response is only good to check if it was successful. Status: 200 = Success echo $response;
获取项目
$response = $client->getItem(array( 'TableName' => '[Table_Name]', 'Key' => array( '[Hash_Name]' => array('S' => '[Hash_Value]'), '[Range_Name]' => array('S' => '[Range_Value]') ) )); echo $response;
删除项目
$response = $client->deleteItem(array( 'TableName' => '[Table_Name]', 'Key' => array( '[Hash_Name]' => array('S' => '[Hash_Value]'), '[Range_Name]' => array('S' => '[Range_Value]') ) )); //Echoing the response is only good to check if it was successful. Status: 200 = Success echo $response;
查询项
$response = $client->query(array( 'TableName' => '[Table_Name]', 'KeyConditionExpression' => '[Hash_Name] = :v_hash and [Range_Name] = :v_range', 'ExpressionAttributeValues' => array ( ':v_hash' => array('S' => '[Hash_Value]'), ':v_range' => array('S' => '[Range_Value]') ) )); echo $response;
希望这对您有所帮助。
关于php - 需要一个带有 php 的 DynamoDB 的完整示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25806267/