Поле электронной почты не обновляется в таблице MySQL (с использованием PDO) - PullRequest
0 голосов
/ 08 марта 2011

У меня есть запрос на сайте, который обновляет профиль пользователя. Он обновляет каждое поле , но поле email , как следует. На самом деле он ничего не делает с полем электронной почты.

Я определяю переменную $ email следующим образом:

$email = str_replace(" ", "", trim($_POST['email']));

А затем я использую свою обертку базы данных, чтобы обновить ее:

MySQL::do_query(
    $db, 
    "UPDATE customer 
    SET 
        email=?,
        firstname=?, 
        surname=?, 
        phonenumber=?, 
        street_address=?, 
        postcode=?, 
        city=?, 
        extra_2=?,
        ssn=?,
        password=?
    WHERE customer_id=? 
    AND password=?", 
    array($email, $firstname, $surname, $phone, $address, $zip, $city, $extra_2, $ssn, StringConverter::generate_hash($email, $_POST['pw']), $customer, StringConverter::generate_hash($email, $_POST['pw']))
);

Но, к тому же, проблема не обновляет поле электронной почты. Каждое другое поле обновляется просто отлично. Я попытался запустить отдельный запрос, обновляющий просто письмо, но это тоже не работает.

Работает нормально при вставке, просто не обновляется. И к этому моменту я понятия не имею, что может быть не так. И переменная $ email содержит правильный адрес электронной почты, хотя запрос, похоже, игнорирует его. Есть идеи?

1 Ответ

1 голос
/ 08 марта 2011

Вы пытались обновить несколько вещей вместе с электронной почтой?Я думаю, нет, потому что я думаю, что если вы измените адрес электронной почты, то все обновление не будет работать правильно ... Это потому, что вы используете $email в StringConverter::generate_hash($email, $_POST['pw']), но если адрес электронной почты изменился, то строка выигралане соответствует проверке пароля в предложении where.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...