MySQL表中的字段电子邮件未更新(使用PDO)

时间:2011-03-08 12:07:31

标签: php mysql sql pdo

我在更新用户个人资料的网站上运行查询。它会更新每个字段 电子邮件字段。实际上它并没有对电子邮件领域做任何事情。

我将$ 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 个答案:

答案 0 :(得分:1)

您是否尝试过多次更新电子邮件?我猜不是,因为我认为如果您更改电子邮件,那么整个更新将无法正常执行...这是因为您在$email中使用StringConverter::generate_hash($email, $_POST['pw']),但如果电子邮件已更改,然后该行将不符合where子句中的密码检查。