Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP会话变量进行SQL更新时出现问题_Php_Sql - Fatal编程技术网

使用PHP会话变量进行SQL更新时出现问题

使用PHP会话变量进行SQL更新时出现问题,php,sql,Php,Sql,我已经做了一个网页,你可以注册和登录,一旦你登录,你可以编辑你的个人资料,还可以上传一个头像。我现在正在做阿凡达的部分,我不明白为什么它不工作。我将向您展示我的部分代码,希望您能帮助我 if ($_SERVER["REQUEST_METHOD"] == "POST") { $avatar_path = $mysqli->escape_string('images/'.$_FILES['avatar']['name']); if (preg_match(

我已经做了一个网页,你可以注册和登录,一旦你登录,你可以编辑你的个人资料,还可以上传一个头像。我现在正在做阿凡达的部分,我不明白为什么它不工作。我将向您展示我的部分代码,希望您能帮助我

if ($_SERVER["REQUEST_METHOD"] == "POST") {
         $avatar_path = $mysqli->escape_string('images/'.$_FILES['avatar']['name']);

         if (preg_match("!image!",$_FILES['avatar']['type'])) {

            if (copy($_FILES['avatar']['tmp_name'], $avatar_path)) {
//它将图像复制到指定的路径,因此我知道它一直工作到这里

                $_SESSION['avatar'] = $avatar_path;
这就是问题所在,因为它基本上什么都不做,甚至不返回错误消息,所以我不知道我的SQL有什么问题。 (
$\u SESSION[msg1]
等于您的用户名(我知道这一点,因为我在这里打印了它),所以基本上我尝试将化身路径插入到users表中,其中username等于您的用户名,但它什么也不做

                $sql = "UPDATE users SET avatar = $avatar_path WHERE username = $_SESSION[msg1]";

                if ($mysqli->query($sql) === true){
                    header("Location: index.php");
                }
            }
         }         
    }

按如下方式格式化查询:

$sql = "UPDATE users SET avatar = '" . $avatar_path . "' WHERE username = '" . $_SESSION['msg1'] . "'";

if ($mysqli->query($sql) === true){
    header("Location: index.php");
}
else
{
    die("Database Query Failed: " . mysqli_error());
}

你不知道哪里出了问题,因为你没有检查代码中的错误。永远不要假设代码总是能够完美地工作。使用从数据库中获取详细的错误消息。谢谢,我不知道我能做到这一点,因为我现在了解所有这些sql和php的东西,我按照你说的做了,它会返回我这个错误:printf(“Errormessage:where子句中的未知列'amurin'(amurin是会话变量)不客气。请向上投票或标记为正确答案;)