2014-03-28 58 views
-2

我想转换上一行我有我从哪里调用的东西回来的数据库,并插入它。SQL插入到数据库使用PHP - 问题与INSERT INTO

这是我具备的功能,但我不能让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()); 

编辑行,所以我才意识到我犯的错,因为这应该是一个UPDATE WHERE不是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

边注:请,PHP维护者,_remove_ mysql_ *已经在文档显然是红彤彤的折旧消息不起作用: -/ –

回答

1

使用UPDATE而不是INSERT

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

是的,我刚刚意识到这一点,但即使改变细节,我仍然陷入死胡同。 – Francesca

+0

因为您在“标题”之前总是有“返回”声明 –

+0

是的谢谢,就是这样! – Francesca