繁体   English   中英

PHP MySQL更新语句不起作用

[英]PHP MySQL update statement is not working

我在线搜索了MYSQL更新语句不起作用的可能原因,但没有一种解决方案适用于我的情况。 这些代码行可能有什么问题?

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

我努力了,

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

我也尝试过

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

forgotPassword函数正常运行,仅不执行UPDATE语句。

这是完整的功能

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

     }

我认为问题出在查询中,您在单引号中使用了表名,不应在其中使用它,在这里您可以看到: 'users' 除了使用单引号之外,您还可以使用`users`或将其保留为此类用户 因此,您的查询将如下所示:

“在用户`email` ='$ email'的情况下,更新`users` SET`user_password` ='$ newpassword',`salt` ='$ salt'”

//我也尝试过,您的第二个查询将如下所示

“更新DBNAME`.users` SET users.`user_password` ='$ newpassword',`users.`salt` ='$ salt'在`users`.`email` ='$ email'”

根据您的要求更新了代码

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

希望这能解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM