2012-05-18 3 views
3

PHP SDK를 사용하여 DynamoDB 테이블의 테이블을 업데이트하려고합니다. 내 배열의 형식에 문제가DynamoDB with PHP, update_item 오류

com.amazon.coral.service 번호의 SerializationException 내가 추측하고있어

을 예상하지 발견 목록의 시작 다음은 오류입니다. 나는이 documentation을 참고로 사용하고있다.

배열입니다 내가 보내고있다 : AttributeUpdates에서

array(3) { 
    ["TableName"]=> 
    string(7) "teacher" 
    ["Key"]=> 
    array(1) { 
    ["HashKeyElement"]=> 
    array(1) { 
     ["S"]=> 
     string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D" 
    } 
    } 
    ["AttributeUpdates"]=> 
    array(1) { 
    [0]=> 
    array(2) { 
     ["population"]=> 
     array(1) { 
     ["Action"]=> 
     string(3) "ADD" 
     } 
     ["Value"]=> 
     array(1) { 
     ["SS"]=> 
     array(1) { 
      [0]=> 
      string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D" 
     } 
     } 
    } 
    } 
} 

답변

0

은 "인구"잘못 배열에 배치됩니다. 요소 자체가 아닌 요소의 핵심이어야합니다. "값"및 "액션"배열 요소의 두 부분 : 구조는 같아야

array(3) { 
    ["TableName"]=> 
    string(7) "teacher" 
    ["Key"]=> 
    array(1) { 
    ["HashKeyElement"]=> 
    array(1) { 
     ["S"]=> 
     string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D" 
    } 
    } 
    ["AttributeUpdates"]=> 
    array(1) { 
    ["population"]=> 
    array(1) { 
     ["Value"]=> 
     array(2) { 
     ["SS"]=> 
     array(1) { 
      [0]=> 
      string(36) "97770A6A-EF06-AF4A-3E30-87DAC0237F6D" 
     } 
     ["Action"]=> 
     string(3) "ADD" 
     } 
    } 
    } 
} 

출처 :

$updateOptions = array(
    'TableName' => 'teacher', 
    'Key'   => array(
     'HashKeyElement' => array('S' => '97770A6A-EF06-AF4A-3E30-87DAC0237F6D'), 
), 
    'AttributeUpdates' => array(
     'population' => array('Value' => array('SS' => array('97770A6A-EF06-AF4A-3E30-87DAC0237F6D'), 'Action' => 'ADD')), 
) 
);