请有人帮助我一直在处理这个问题几个小时。我正在尝试从我的表ptb_registrations中复制某些列,并将它们作为新行插入到ptb_users中。
我的ptb_registrations表看起来像这样:
id | username | password | firstname | lastname | email
1 dave password james tanner email@email.com
2 jonx10 gundam00 eric davies something@email.com
3 33csgge henry10 daniel gilmart mail@inbox.com
从这些列中我只想插入id,firstname,lastname,email和password not username。
所以我的ptb_user表看起来像这样:
id | user_id | password | firstname | lastname | email
1 1 password james tanner email@email.com
2 2 gundam00 eric davies something@email.com
3 3 henry10 daniel gilmart mail@inbox.com
id是一个自动增量值,我希望user_id在插入数据时具有与auto_incremented id列相同的值(如果可能,那么id为1 - user_id也将为1)
到目前为止,我已经尝试了许多不同的方法来从ptb_registrations和ptb_users中插入列,但没有任何方法可以帮助我。
有人可以告诉我我哪里出错了,谢谢。
// Make a safe query
$query ="insert into ptb_users(id, first_name)
select ptb_registrations.id, ptb_registrations.firstname
from ptb_registrations, temp
where ptb_users.id=temp.id;
";
mysql_query($query)or die('Could not update members: ' . mysql_error());
答案 0 :(得分:0)
无法保证您的新AUTO_INCREMENT
将与之前的用户ID相匹配...如果序列中断,会发生什么?您最好的选择是在插入记录后重新分配新表的ID。
您的查询应该是这样的:
INSERT INTO ptb_user (user_id, password, firstname, lastname, email)
SELECT id, password, firstname, lastname, email
FROM ptb_registrations
ORDER BY id
P.S。我希望您不要将密码保存在 纯文本 中。