2013-01-09 2 views
0

이론적으로는 작동하는 코드를 보여 드리겠습니다. 이는 의미가 있지만 테이블에 아무런 변화가 없음을 의미합니다! :데이터베이스의 필드 값을 업데이트/변경할 수 없습니다.

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"); 
} 

\

그래서, 여기에 코드입니다. 미리 감사드립니다! :)

답변

0

코드에 오류 처리를 추가해야합니다. 적어도 mysql_query() 다음에 or die('Error: '.mysql_error())을 추가하면 쿼리가 실행될 때 잘못된 점을 알게됩니다.

만약 당신이 어딘가에서 코드를 가져 와서 실제로 무엇을하는지 이해하지 못한다면, 당신이 원하는 것을하지 않으면 놀라지 마십시오.

관련 문제