无法完成请求。未提供必需的唯一键列值 - Silverpop

时间:2015-07-09 09:50:49

标签: php xml curl

我正在尝试向我的数据库添加联系人,唯一的密钥是电子邮件。

我正在使用此代码:

public function addContact($list_id, $createdfrom, $columnslist,     $update_if_found = null, $contact_lists = null, $sync_fields = null){
    $xml = '';
    $xml.='<Envelope>'.PHP_EOL;
    $xml.='<Body>'.PHP_EOL;
    $xml.='<AddRecipient>'.PHP_EOL;
    $xml.='<LIST_ID>'.$list_id.'</LIST_ID>'.PHP_EOL;
    $xml.='<CREATED_FROM>'.$createdfrom.'</CREATED_FROM>'.PHP_EOL;
    if(isset($contact_lists)){
              $xml.='<UPDATE_IF_FOUND>'.$update_if_found.'</UPDATE_IF_FOUND>'.PHP_EOL;
    }
    if(isset($contact_lists)){
        $xml.='<CONTACT_LISTS><CONTACT_LIST_ID>'.$contact_lists.'</CONTACT_LIST_ID></CONTACT_LISTS>'.PHP_EOL;
    }
    if(isset($sync_fields)){
        $xml.='<SYNC_FIELDS>'.PHP_EOL.$this->getxml($sync_fields,'SYNC_FIELD').'</SYNC_FIELDS>'.PHP_EOL;    
    }
    $xml.=$this->getxml($columnslist,'COLUMN');    
    //$xml.='<KEY_COLUMNS><COLUMN><NAME>EMAIL</NAME></COLUMN></KEY_COLUMNS>'.PHP_EOL;
    $xml.='</AddRecipient>'.PHP_EOL;
    $xml.='</Body>'.PHP_EOL;
    $xml.='</Envelope>'.PHP_EOL;
    echo '<pre>'.htmlentities($xml).'</pre>';
    $response = $this->request($xml);
    $data = simplexml_load_string($response);
    return $data;
}

我仔细检查了数据库,我添加了指定唯一键,仍然得到错误211。 谢谢你的帮助。

编辑:getxml的示例输出

<COLUMN>
    <NAME>
        EMAIL
    </NAME>
    <VALUE>
        name@domain.com
    </VALUE>
</COLUMN>

0 个答案:

没有答案