2014-10-21 2 views
0

여기에서 Google과 Google을 통해 많은 연구를했지만이 문제에 대한 답을 찾을 수 없습니다.mysql을 업데이트 한 후에 값이 비어 짐 PHP

내가 다음 코드를 사용하여 MySQL 데이터베이스에서 필드를 업데이트합니다

public function registerPubKey() { 

    $stmt = $this->cn->prepare('UPDATE sb_user SET pubkey= ? WHERE email= ?'); 
    $exres = $stmt->execute(array($this->info["pubkey"],$this->info["email"])); 
    if ($exres == false) { $resultArray["result"] = "Error registering public key"; echo json_encode($resultArray); exit; } 

    $resultArray["result"] = "success"; echo json_encode($resultArray); 
} 

내가 확신하는 데이터베이스의 필드가 비어 있음을 제외한 모든 작품. 개인 변수 $ info를 덤프하고 pubkey (pubkey는 base64 문자열)를 포함합니다.

INSERT로 업데이트 쿼리를 변경하면 값이 올바르게 삽입됩니다.

답변

0

UPDATE 행이 존재하지 않으므로 가능성이 있습니다. 이전에 ON DUPLICATE KEY을 추가해보세요. INSERT ... ON DUPLICATE KEY UPDATE Syntax을 참조하십시오. UPDATE 행이 없으면 아무 것도 반환하지 않습니다.

+0

대단히 감사합니다. 내가 확인하고 알려 드리겠습니다. – Fumarja

+0

오 세상에 ... 나는 조금 지연되었습니다. xD 나는 WHERE 조건에서 잘못된 값을 전달하고있었습니다. '존재하지 않는 행을 업데이트하려고했기 때문에 가능성이 있습니다.' 파커 응답이 해결책이었습니다. 다시 감사합니다. – Fumarja