php - AWS SDK for PHP DynamoDB PutItem 仅适用于非空变量

标签 php amazon-web-services sdk amazon-dynamodb

我正在将数组中的变量插入 AWS DynamoDB $dbf[$a]['变量1'], $dbf[$a]['变量2'], $dbf[$a]['变量3'] ...

对于一些$a,只设置了'variable1'和'variable2',并且 对于其他 $a,所有“变量#”都已设置。

下面的代码将无法运行,因为 Null 或未设置的变量不是 允许。

在循环中是否有一种方法可以只尝试为已设置的变量“PutItem”?

foreach($dbf as $day)
{
$result = $client->PutItem(array(
    'TableName' => 'AWIS',
    'Item' => array(
        'id' => array('S' =>  $day['id']),
        'date'=> array('S' => $day['date']),
       'max'=> array('N' => $day['max']),
       'min'=> array('N' => $day['min']),
       'pre'=> array('N' => $day['pre']),
       'max_soil_temp'=> array('N' => $day['max_soil_temp']),
       'min_soil_temp'=> array('N' => $day['min_soil_temp']),
       'evap'=> array('N' => $day['evap']),
       'veg_wetting'=> array('N' => $day['veg_wetting']),
       'solar_rad'=> array('N' => $day['solar_rad']),
       'ob_temp'=> array('N' => $day['ob_temp']),
       'adj_min'=> array('N' => $day['adj_min']),
       'chill_hours'=> array('N' => $day['chill_hours'])
                 ),
                           ));
}

最佳答案

你可以这样做:

if ($yourValue) {
        $params['yourKey'] = array(
            'Action' => 'PUT',
            'Value' => array(
                Type::STRING => $yourValue
            )
        );
    }

$response = $Client->updateItem(array(
            "TableName" => "tableName",
            "Key" => array(
                "Id" => array(
                    Type::STRING => $Id
                )
            ),
            "AttributeUpdates" => $params
                )
        ); 

设置所有在循环中可用的参数,并只更新那些可用的值

希望对你有帮助

关于php - AWS SDK for PHP DynamoDB PutItem 仅适用于非空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30377507/

相关文章:

php - 我应该在这里使用 'strtotime' 吗?

php - Kohana_Exception [ 0 ]:需要有效的 cookie 盐。请设置 Cookie::$salt

php - 使用 php 检查字符串是否包含 10 位数字但每个数字后有空格

amazon-web-services - 无法通过 CLI 创建 FIFO SQS

windows - 在没有 .NET Framework 4.0 的情况下使用 Windows SDK 7.1 编译 C++ 代码

php - Yii: Fixer - 我怎样才能创建固定装置之间的关系?

php - 安装 Predis 错误 : Download of "nrk/Predis" succeeded, 但它不是有效的包存档

ios - iOS AWS DynamoDB无法运行请求

iPhone OS 3.1.3 不适用于 Xcode 3.2.1。我必须安装 SDK 3.2 BETA 吗?

c# - 获取 CRM 实体名称的简便方法