2014-03-28 78 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