2013-03-16 53 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),你需要更新现有的用户的信息与新的细节。