编程语言
首页 > 编程语言> > 需要一个完整的phpo DynamoDB示例

需要一个完整的phpo DynamoDB示例

作者:互联网

我想在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

> AWS确实有此HEREHERE的教程

> 2.打开终端
> 3.如果您尚未创建凭据,请在终端的新页面中输入:

nano ~/.aws/credentials

>纳米功能页面将打开.您将在顶部看到GNU nano 2.0.6 ….

> 4.在纳米页面内,输入:

[default]
aws_access_key_id = public_key_ABCDEFGHIJKLMNOPQRSTUVWXYZ
aws_secret_access_key = private_key_s0m3_CR42Y_l3tt3rS_i5y0ur53cr3tK3y

> 5.输入后,点击CONTROL X(是……控制,而不是命令).
> 6.按Y然后按ENTER
> 7.获取[AWS_SDK_PHP] [4]
> 8.转到您的Elastic Beanstalk
> 9.完成创建应用程序后,您会看到带有绿色检查的“概述”屏幕.查看侧面并点击配置.
> 10.在软件配置下 – >文档根目录:键入:/
> 11.在物业名称下 – > 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,上传拉链,然后你去!全部使用AWS Setup完成!

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,amazon-web-services,nosql,database,amazon-dynamodb
来源: https://codeday.me/bug/20191004/1852108.html