mysql更新php后的空值

时间:2014-10-21 19:12:44

标签: php mysql insert-update is-empty

我在这里和谷歌做了很多研究,但我找不到这个问题的答案。

我使用以下代码更新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更改更新查询,则会正确插入值!

1 个答案:

答案 0 :(得分:0)

可能是因为您尝试UPDATE不存在的行。尝试之前添加ON DUPLICATE KEY。见INSERT ... ON DUPLICATE KEY UPDATE Syntax。如果该行不存在,UPDATE将不返回任何内容。