将数据从一个表复制到另一个表?

时间:2013-03-14 13:18:46

标签: php mysql

当用户注册我的网站时,他们会填写一份注册表,并将其详细信息放入名为ptb_registrations的表中。

之后,他们会收到一封包含验证码的电子邮件,点击电子邮件链接并转到验证链接,输入正确的代码后我想要运行查询。

此查询需要充当插入查询,将数据从一个表(ptb_registrations)复制到另一个表(ptb_usetries)。

有人可以帮助我,因为它没有工作,我不确定我是否朝着正确的方向前进。谢谢

// Make a safe query
$query = sprintf("INSERT INTO ptb_users (first_name, last_name, email,    
    password, dob)
SELECT firstname, lastname, email, password    
    dob
WHERE not exists (select 1 from ptb_registrations where ptb_registrations.registration_code='$verificationcode';",
                    mysql_real_escape_string($newpassword));

mysql_query($query)or die('Could not update members: ' . mysql_error());

2 个答案:

答案 0 :(得分:1)

据我所知,您的查询中存在很多语法错误:

select语句中的密码和dob之间没有逗号,未指定select语句的from表。此外,条件看起来很奇怪(并且not exists语句没有右括号)。至于我,你应该有一个像这样的查询:

$query = "INSERT INTO ptb_users (first_name, last_name, email, password, dob)
SELECT firstname, lastname, email,'". mysql_real_escape_string($newpassword)."', dob FROM ptb_registrations
WHERE ptb_registrations.registration_code=''". mysql_real_escape_string($$verificationcode).";"

此查询将从ptb_registrations中获取一行,其中注册码等于从请求接收的注册码并将其插入ptb_users(并将新密码作为用户密码)

答案 1 :(得分:0)

您可以尝试这样的事情:

SELECT firstname, lastname, email, password,dob
into yourtablename
from (tablename)
^ you are missing something here i.e your tablename
WHERE not exists (select 1 from ptb_registrations where
ptb_registrations.registration_code='$verificationcode';",
mysql_real_escape_string($newpassword)
  • 这将创建具有相同data structure
  • 的新表格