Я провел много исследований здесь и в Google, но не могу найти ответ на эту проблему.
Я обновляю поле в базе данных 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, значение будет вставлено правильно!
Вероятно, потому что вы пытаетесь UPDATE
несуществующие строки. Попробуйте добавить ON DUPLICATE KEY
до. Увидеть INSERT … ON DUPLICATE KEY UPDATE Синтаксис. UPDATE
ничего не возвращает, если строка не существует.
Других решений пока нет …