-1

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

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 的会话并尝试插入数据库但没有插入任何内容。

4

3 回答 3

0

您要做的是具有相同的“两个唯一”值。这是不可能的。否则这些值不再是唯一的。

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

于 2013-03-16T18:34:26.880 回答
0

很好奇你为什么要这样做。任何人,您都可以尝试以下方法:

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

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

于 2013-03-16T18:26:48.797 回答
0

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

于 2013-03-17T13:52:14.293 回答