Мне просто интересно: если запись не существует, «UPDATE» также делает «обновление»? Я использую следующий код, и if-statement всегда имеет «успех», особенно если адрес электронной почты не найден «WHERE». Должен ли я проверять, существует ли электронная почта в таблице?обновление: нет ошибки, если запись не существует
$email=...;
if ($update_stmt = $mysqli->prepare("UPDATE members SET password = ?, salt = ? WHERE email='".$email."'"))
{
$update_stmt->bind_param('ss', $password, $random_salt);
$update_stmt->execute()
header("Location: ...?success=1");
}
else
header("Location: ...?error=1");
Спасибо за любые предложения.
если запись не существует, какая запись будет обновляться? –
Если предложение 'WHERE' не соответствует ни одному из строк, ничего не выполняется. Вы можете проверить [затронутые строки] (http://php.net/manual/en/mysqli.affected-rows.php). – alex
В SQL семантика ошибок - это не то, для чего вы их используете. Это прекрасно, чтобы сделать запрос, который не возвращает никаких строк. Почему это должно быть ошибкой? Ошибки связаны, главным образом, но не исключительно, с синтаксическими ошибками или ошибками, выполняющими определенные операции. Если вам нужно создать ошибку, когда обновление не выполняется, вам нужно проверить, были ли возвращены какие-либо строки и возникла ошибка, если их не было. – Eric