允许将会话中存储的id的副本插入数据库中

时间:2013-03-16 18:21:49

标签: php mysql database session duplicates

在数据库中我已经有了这个:

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

同一个用户注册一个id为3的帐户存储在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的会话并尝试插入数据库但未插入任何内容。

3 个答案:

答案 0 :(得分:0)

非常好奇为什么要这样做。任何人,你可以尝试类似的东西:

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

希望您也不要以纯文本格式存储密码。

答案 1 :(得分:0)

您要做的是拥有相同的“两个独特”值。它无法完成。否则,这些值不再是唯一的。

要回答您的问题,如果您要存储值的字段不是强制唯一性的字段,那么应该执行简单的插入操作。除非您想从数据库中获取值并进行重复。很难弄清楚你想要什么。但只是尝试插入一个你知道的值已经在现场。如果它不是唯一的或主要的领域,它将起作用。

答案 2 :(得分:0)

我认为您需要更新查询。由于id已经存在(用户注册为会话具有id),您需要使用新的详细信息更新现有用户的信息。