当用户注册我的网站时,他们会填写一份注册表,并将其详细信息放入名为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());
答案 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