2013-03-16 76 views
-1

在數據庫中插入我已經有這裏面:允許會話存儲ID重複到數據庫

id | username | password 
========================= 
3 | John | happy 

相同的用戶註冊其3 ID存儲在PHP會話的帳戶。我想要將另一行的id也是3存儲到數據庫中。

輸出將是這樣的:

id | username | password 
========================= 
3 | John | happy 
3 | Emily | sad 

到目前爲止,我得到這個:

abc.php

$result = mysql_query("SELECT id FROM account WHERE username='".$username."' LIMIT 1") or die(mysql_error); 

while ($row = mysql_fetch_assoc($result)) 
{ 
    $_SESSION['id'] = $row['id'] ; 
} 

<input type="hidden" name="custom" value="<?php echo $_SESSION['id'];?>"> 

cba.php

$id = $_POST['custom']; 

mysql_query("INSERT INTO user (id, username, password) VALUES('".$id."', '".$username."', '".$password."')") or die(mysql_error()); 

我嘗試與id是3的會話nd嘗試插入數據庫,但沒有插入任何內容。

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-03-16 18:24:03

+0

你爲什麼要允許使用相同的ID?由於不同的用戶可能有權訪問其他人的會話,因此安全意識很差。 – 2013-03-16 18:26:36

回答

0

非常好奇你爲什麼想這樣做。任何人,你可以嘗試這樣的:

$sql = "INSERT INTO user (id, username, password) 
SELECT MAX(id), '" . $username . "', '" . $password . "' FROM user"; 

希望你也沒有以純文本存儲密碼。

+0

我正在使用它來進行測試。不,不會將這些密碼存儲爲純文本。 – 2013-03-16 18:44:22

0

你要做的是有「兩個獨特的」值是相同的。它不能做到。否則這些值不再是唯一的。

要回答你的問題,如果你想存儲值的字段不是你強制唯一性的字段,那麼一個簡單的插入就應該這樣做。除非你想從數據庫獲取值並重復。很難確定你想要的東西。但試圖插入一個你知道已經在現場的值。如果它不是一個獨特的或主要的領域,它將起作用。

0

我認爲你需要更新查詢。由於身份證已經存在(用戶註冊,因爲他的會話有一個ID),你需要更新現有的用戶的信息與新的細節。