2016-03-07 88 views
0

因此,即時通訊這一奮鬥2天,我還沒有看到谷歌的任何例如有關,它的作品,所以我想它不工作是這樣的:插入MySQL數據庫其中username =:用戶名

$steamusername = "xx"; 
$uname = $_SESSION['username']; 
$sql1 = "INSERT INTO users (steamusername) VALUES (:steamusername) WHERE :username = username"; 

$query = $conn->prepare($sql1); 
$result = $query->execute(array(':steamusername'=>$steamusername, ':username'=>$uname)); 

它不會給出任何錯誤,但它也不會將其放入數據庫中。

我真的不知道我怎麼可以讓它它進入用戶表,我也試圖更新字段:

$sql1 = "UPDATE users SET steamusername = :steamusername WHERE username = :username"; 
$stmt1 = $conn->prepare($sql1); 
$stmt1->bindParam(':username', $uname); 
$stmt1->bindValue(':steamusername', $steamusername); 
$stmt1->execute(); 

有誰知道解決的辦法?提前致謝!

+1

想想INSERT .... WHERE以及如何工作 – Mihai

+0

其實它可能會給出錯誤。你不知道,因爲你沒有檢查一個。嘗試'if(!($ stmt1 = $ conn-> prepare($ sql1))){throw new Exception($ stmt1-> error); }'和'if($ stmt1-> execute()){拋出新的異常($ stmt1-> error); }' – OscarJ

回答

1

INSERT用於創建新記錄,您要做的是更新當前記錄。您需要使用一個UPDATE查詢,如下所示:

$query = $conn->prepare("UPDATE users SET steamusername = :steamusername WHERE username = :username"); 
$query->execute(array(':steamusername' => $steamusername, ':username' => $uname)); 

請注意,我們傳遞參數給​​函數作爲數組。

+0

修正了這個問題,我還在$ stmt-> bindvalue一個輸入錯誤,我有$ stm1t:D謝謝:D –