SQL使用PHP插入数据库 - INSERT INTO问题

时间:2014-03-28 23:19:14

标签: php mysql sql

我正在尝试转换我从数据库中调用某些内容的前一行,然后插入它。

这是我的功能,但我无法让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');
}
?>

1 个答案:

答案 0 :(得分:1)

使用UPDATE而不是INSERT

$sql = "UPDATE `users` SET `avatar`='{$avatarID}' WHERE `username` = '".$_SESSION['user']."'";