0

请有人能帮我处理这个查询几个小时。我正在尝试从我的表 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、名字、姓氏、电子邮件和密码,而不是用户名。

所以我的 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());
4

1 回答 1

0

无法保证您的新AUTO_INCREMENT用户 ID 与您之前的用户 ID 匹配...如果序列中断会发生什么?最好的办法是在插入记录后重新分配新表的 id。

您的查询应该是这样的:

INSERT INTO ptb_user (user_id, password, firstname, lastname, email)
SELECT id, password, firstname, lastname, email
FROM ptb_registrations
ORDER BY id

PS 我希望您不要以纯文本格式保存密码。

于 2013-03-14T19:05:09.497 回答