无法更新/更改数据库中的字段值

时间:2013-01-09 21:02:20

标签: mysql database sql-update

从理论上讲,我会向你展示有效的代码,我的意思是,它是有道理的,但我不能在表中得到任何改变! :\

所以,这是代码:

else if ($mode == 'password') {
    $generated_password = substr(md5(rand(999,999999)), 0, 8);
    change_password($user_data['user_id'],$generated_password);         
    update_user($user_data['user_id'], array('password_recover' => '1'));
    email($email, 'Your new password', "Hi," . $user_data['nome'] . " \n\nYour new password is: " . $generated_password . "");
}

功能:

function update_user($user_id,$update_data){
    $update = array();     
    array_walk($update_data, 'array_sanitize'); 
    foreach($update_data as $field => $data) {
            $update[]='`' .$field. '`=\'' .$data . '\'';
    }
    mysql_query("UPDATE users SET " . implode(', ',$update) . "WHERE user_id = '$user_id'");
}

function change_password($user_id,$password) {
    $user_id = (int) $user_id;
    $password = md5($password);

    mysql_query("UPDATE users SET password = '$password' WHERE user_id = $user_id");
}

我甚至没有编写电子邮件功能,因为它有效。提前致谢! :)

1 个答案:

答案 0 :(得分:0)

您应该为代码添加某种错误处理。至少在每个or die('Error: '.mysql_error())之后添加mysql_query(),以便至少了解执行查询时出了什么问题。

如果您只是从某个地方获取代码但并不真正理解它的作用,那么如果它没有按照您的意愿行事,请不要感到惊讶。