dpleylxzx47207117 2016-05-29 16:37
浏览 71

PHP MySQL更新语句不起作用

I have searched online for possible reasons of why a MYSQL update statement won't work but none of the solutions work on my case. What could be wrong in these lines of code?

     public function forgotPassword($email, $newpassword, $salt){
     $result = mysqli_query($this->db->con,"UPDATE users SET user_password = '$newpassword',salt = '$salt'
                      WHERE email = '$email'");

I have tried,

"UPDATE 'users' SET 'user_password' = '$newpassword','salt' = '$salt'
                      WHERE 'email' = '$email'"

I have also tried,

"UPDATE 'DBNAME'.'users' SET 'user_password' = '$newpassword','salt' = '$salt'
                      WHERE 'users'.'email' = '$email'"

The forgotPassword function works properly, only the UPDATE statement is not executed.

Here is the complete function

    public function forgotPassword($email, $newpassword, $salt){
$result = mysqli_query($this->db->con,"UPDATE `melobook_customers`.`users` SET `user_password` ='$newpassword',`salt` ='$salt'
                      WHERE `users`.`email` ='$email'");

     if ($result) {
      return true;
      }
   else
     {
     return false;
     }

     }
  • 写回答

1条回答 默认 最新

  • dougou8573 2016-05-29 17:07
    关注

    I think the problem is within your query, you used table name within single quotes which should not be used, here you can see: 'users'. Instead of the single quotes you've to use `users` or you can leave that like this users. So your query will look something like this,

    "UPDATE `users` SET `user_password` = '$newpassword',`salt` = '$salt' WHERE `email` = '$email'"

    //I have also tried, Your second query will look something like this

    "UPDATE `DBNAME`.`users` SET `users`.`user_password` = '$newpassword',`users`.`salt` = '$salt' WHERE `users`.`email` = '$email'"

    Updated Code Based on your requirement

    <?php
            class check_update{
    
                private $con;
    
                public function __construct(){
                    $this->con = mysqli_connect("db_host", "db_user", "db_password", "db_name");
                }
    
                public function forgotPassword($email, $newpassword, $salt){
                    $sql = "UPDATE `db_name`.`table_name` SET `table_name`.`password` ='$newpassword',`table_name`.`salt` = '$salt' WHERE `table_name`.`email` ='$email'";
                    $result = mysqli_query($this->con, $sql);
                    if ($result) {
                        return true;
                    }else{
                        return false;
                    }
                }
            }
            $check_update = new check_update();
            $check_update->forgotPassword("your_email", "new_password", "salt");
    ?>
    

    Hope this will fix your problem.

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM