我正在尝试转换我从数据库中调用某些内容的前一行,然后插入它。
这是我的功能,但我无法让INSERT INTO
正常工作
我已经调试过了:与数据库的连接工作正常,user
的会话变量已设置且$avatarID
存在。
if(!empty($_SESSION['user'])){
$avatarID = $_POST['avatarID'];
$avatarID = mysql_real_escape_string(trim($_POST['avatarID']));
// Insert into DB
$sql = "INSERT INTO `users` (`avatar`) VALUES ('{$avatarID}') WHERE `username` = '".$_SESSION['user']."'";
$query = mysql_query($sql);
if($query === false){
return false;
}else{
return true;
}
header('Location: profile.php');
}
我认为这是$sql
行的问题。除了简单的空白页/死屏之外,我没有收到任何错误。
尝试更改为以下内容:
// Insert into DB
$query = mysql_query("INSERT INTO `user` (`avatar`) VALUES ('{$avatarID}'") or die(mysql_error());
编辑确定所以我意识到我犯了错误,因为这应该是更新,而不是INSERT INTO。但即使使用UPDATE和WHERE,我仍然在努力使查询详细信息正确无误。但仍然没有结果:
<?php session_start();
require 'connect.php';
if(!empty($_SESSION['user'])){
$avatarID = $_POST['avatarID'];
$avatarID = mysql_real_escape_string(trim($_POST['avatarID']));
// Insert into DB
$sql = "UPDATE `users` SET `avatar`='{$avatarID}' WHERE `username` = '".$_SESSION['user']."'";
$query = mysql_query($sql);
if($query === false){
return false;
}else{
return true;
}
header('Location: profile.php');
}else{
header('Location: choose-avatar.php');
}
?>
答案 0 :(得分:1)
使用UPDATE而不是INSERT
$sql = "UPDATE `users` SET `avatar`='{$avatarID}' WHERE `username` = '".$_SESSION['user']."'";