когда пользователь подписывается на мой сайт, они заполняют регистрационную форму и записывают свои данные в таблицу под названием ptb_registrations.
после этого они получают электронное письмо с кодом подтверждения, они нажимают ссылку по электронной почте и переходят на ссылку подтверждения, после ввода правильного кода я хочу, чтобы запрос запускался.
этот запрос должен действовать как запрос вставки, который скопирует данные из одной таблицы (ptb_registrations) в другую (ptb_users).
может кто-то помочь мне с этим, так как он не работает, и я не уверен, если он движется в правильном направлении. благодаря
// 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());
Насколько я вижу, у вас много синтаксических ошибок в вашем запросе:
нет запятой между паролем и dob в инструкции select, From table for select statement не указывается. Кроме того, когда условие выглядит странным (и нет закрывающей скобки для оператора 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 (и поместить новый пароль в качестве пароля пользователя)
Вы можете попробовать что-то вроде этого:
SELECT firstname, lastname, email, password,dob into yourtablename from (tablename) ^ you are missing something here ie your tablename WHERE not exists (select 1 from ptb_registrations where ptb_registrations.registration_code='$verificationcode';", mysql_real_escape_string($newpassword)
data structure