Как мне сделать запрос в Codeigniter 3 с DynamodB и, кроме того, включить индекс?
В моем примере я получаю следующую ошибку:
Обнаружена 1 ошибка проверки: значение null в hashKeyValue не удалось
удовлетворить ограничение: член не должен быть нулевым
Это мой пример:
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
атрибутов.
Согласно Документация DynamoDB :
Значения атрибута не могут быть нулевыми.
Та же проблема поднимается в Форум разработчиков AWS также.
Решение :
Перед передачей вашей переменной $fecha_registro
функционировать obtener()
,
Вам нужно проверить, передана ли переданная переменная Non Empty
или же Not Null
Для вашего сценария просто добавьте проверку перед вызовом вашей функции, как показано ниже:
if(isset($fecha_registro) && ($fecha_registro != '' || $fecha_registro != NULL)){
obtener($fecha_registro);
}
Других решений пока нет …