使用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是会话变量)不客气。请向上投票或标记为正确答案;)