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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了为什么我的PHP代码不能更新SQL脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁知道为什么这个 PHP代码没有更新列imagesIT将更新其余的,但只是不是图片列更新用户信息所以邮件地址,密码和图片我是PHP新手,所以我真的不我正在寻找错误时知道要寻找什么

<?PHP 

    require("common.PHP"); 

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

        @R_512_2598@("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
";

脚本宝典总结

以上是脚本宝典为你收集整理的为什么我的PHP代码不能更新SQL全部内容,希望文章能够帮你解决为什么我的PHP代码不能更新SQL所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。