Php 使用codeigniter 3和dynamodb进行查询

Php 使用codeigniter 3和dynamodb进行查询,php,codeigniter,amazon-dynamodb,jquery-filter,Php,Codeigniter,Amazon Dynamodb,Jquery Filter,如何使用dynamodb在codeigniter3中进行查询并另外包含索引 在我的示例中,我得到以下错误: 检测到1个验证错误:“hashKeyValue”处的值null无法 满足约束:成员不能为null 这是我的例子: function obtener($fecha_registro) { $client = new AmazonDynamoDB(); $response = $client->query( array( 'TableName' => '

如何使用dynamodb在codeigniter3中进行查询并另外包含索引

在我的示例中,我得到以下错误:

检测到1个验证错误:“hashKeyValue”处的值null无法 满足约束:成员不能为null

这是我的例子:

function obtener($fecha_registro) {

   $client = new AmazonDynamoDB(); 
   $response = $client->query( array(

     'TableName' => 'nom_table',
    'KeyConditionExpression' => 'id_registro = :v_hash and fecha_registro = :v_range',
    'ExpressionAttributeValues' =>  array (
        ':v_hash'  => array('S' => '148537355319'),
        ':v_range' => array('S' => $fecha_registro)
    )
));


     print_r($response);
        if ($response->status == '200'){
            return $response->body->Items;
        } else {     
            print_r($response);
        }
}

出现此错误的唯一原因是:

Amazon DynamoDB没有处理
empty
null
属性

根据:

属性值不能为null

会议上也提出了同样的问题

解决方案:

在将变量
$fecha_registro
传递给函数
obtener()之前,
您需要检查传递的变量是
非空
还是
非空

对于您的场景,只需在调用函数之前添加一个检查,如下所示:

if(isset($fecha_registro) && ($fecha_registro != '' || $fecha_registro != NULL)){
     obtener($fecha_registro);
}

可能重复@Dave,你应该保持投票的习惯,一旦你发现问题解决了,就接受答案。:)