加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为什么我的PHP代码不能更新SQL

发布时间:2020-12-13 17:26:06 所属栏目:PHP教程 来源:网络整理
导读:有谁知道为什么这个 PHP代码没有更新列imagesit将更新其余的,但只是不是图片列更新用户信息所以电子邮件地址,密码和图片我是PHP的新手,所以我真的不我正在寻找错误时知道要寻找什么 ?php require("common.php"); if(empty($_SESSION['user'])) { header("Loc
有谁知道为什么这个 PHP代码没有更新列imagesit将更新其余的,但只是不是图片列更新用户信息所以电子邮件地址,密码和图片我是PHP的新手,所以我真的不我正在寻找错误时知道要寻找什么

<?php 

    require("common.php"); 

    if(empty($_SESSION['user'])) 
    { 
        header("Location: login.php"); 

        die("Redirecting to login.php"); 
    } 

    if(!empty($_POST)) 
    { 
        if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
        { 
            die("Invalid E-Mail Address"); 
        } 

        if($_POST['email'] != $_SESSION['user']['email']['picture']) 
        { 
            $query = " 
                SELECT 
                    1 
                FROM users 
                WHERE 
                    email = :email
                    picture = :picture
            "; 

            $query_params = array( 
                ':email' => $_POST['email'] 
            ); 

            try 
            { 
                $stmt = $db->prepare($query); 
                $result = $stmt->execute($query_params); 
            } 
            catch(PDOException $ex) 
            { 
                die("Failed to run query: " . $ex->getMessage()); 
            } 

            $row = $stmt->fetch(); 
            if($row) 
            { 
                die("This E-Mail address is already in use"); 
            } 
        } 

        if(!empty($_POST['password'])) 
        { 
            $salt = dechex(mt_rand(0,2147483647)) . dechex(mt_rand(0,2147483647)); 
            $password = hash('sha256',$_POST['password'] . $salt); 
            for($round = 0; $round < 65536; $round++) 
            { 
                $password = hash('sha256',$password . $salt); 
            } 
        } 
        else 
        { 
            $password = null; 
            $salt = null; 
        } 

        $query_params = array( 
            ':email' => $_POST['email'],':user_id' => $_SESSION['user']['id'],':picture' => $_POST['picture'],); 

        if($password !== null) 
        { 
            $query_params[':password'] = $password; 
            $query_params[':salt'] = $salt; 
        } 

        $query = " 
            UPDATE users 
            SET 
                email = :email 
                picture = :picture
        "; 

        if($password !== null) 
        { 
            $query .= ",password = :password,salt = :salt 
            "; 
        } 

        $query .= " 
            WHERE 
                id = :user_id 
        "; 

        try 
        { 
            // Execute the query 
            $stmt = $db->prepare($query); 
            $result = $stmt->execute($query_params); 
        } 
        catch(PDOException $ex) 
        { 
            die("Failed to run query: " . $ex->getMessage()); 
        } 

        $_SESSION['user']['email']['picture'] = $_POST['email']; 

        header("Location: private.php"); 

        die("Redirecting to private.php"); 
    } 

?>

解决方法

你错过了,.

$query = " 
    UPDATE users 
    SET 
        email = :email 
        picture = :picture
";

您需要将其更改为

$query = " 
    UPDATE users 
    SET 
        email = :email,picture = :picture
";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读