我在这里和谷歌做了很多研究,但我找不到这个问题的答案。
我使用以下代码更新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 :(得分:0)
可能是因为您尝试UPDATE
不存在的行。尝试之前添加ON DUPLICATE KEY
。见INSERT ... ON DUPLICATE KEY UPDATE Syntax。如果该行不存在,UPDATE
将不返回任何内容。