копировать данные из одной таблицы в другую?

когда пользователь подписывается на мой сайт, они заполняют регистрационную форму и записывают свои данные в таблицу под названием 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