-1

我在表中将 id 设置为自动递增列,并且我试图将列 id 中的数据复制到列 user_id。

下面的查询插入数据并自动递增列 id,但是我希望列 user_id 具有与 id 相同的值,所以如果 id 自动递增到 31,那么 user_id 也将是 31。

这是我正在使用的查询:

$query="INSERT INTO ptb_users (user_id,
id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."'
)";
$result = mysql_query("UPDATE ptb_users SET user_id=id");
mysql_query($query) or die();

我遇到的问题是 id 和 user_id 之间的更新/复制只会在另一个用户注册后/第二次运行查询后发生在当前注册中。

所以说 id 31 需要被复制到列 user_id 这不会发生,直到另一个用户第二次注册/运行查询。如果新注册的人是 id 32,那么在 id 32 注册/运行第二次查询之前,之前用户(id 31)的 id 和 user_id 之间的更新不会发生。

我如何才能在查询或查询完成后立即进行更新,以便当 id 31 注册/运行查询时,id 和 user_id 之间的更新会在查询运行的同时发生?

真的我更喜欢将 id 和 user_id 作为自动增量,但因为不可能有两个自动增量字段我试图将自动增量结果从 id 复制到 user_id 并且我需要这样做,因为我的代码在我的网站上交叉引用两列以确保安全。

4

1 回答 1

-1

您的更新查询首先运行,替换调用命令。

...    
mysql_query($query) or die();
$result = mysql_query("UPDATE ptb_users SET user_id=id");
...

我不知道你为什么在你的代码中使用这样的动作,同样的事情有很多更好的方法。但是请在您的更新语句中添加 where 条件,因为您的查询会更新所有表并且它会运行缓慢,并且它不是最佳解决方案。

于 2013-03-15T11:41:47.713 回答