2013-03-14 2 views
0

Когда пользователь регистрируется на моем сайте, они заполняют регистрационную форму и записывают свои данные в таблицу под названием ptb_registrations.копировать данные из одной таблицы в другую?

после этого они получают электронное письмо с кодом подтверждения, они нажимают ссылку по электронной почте и переходят к ссылке подтверждения, вводя правильный код. Я хочу, чтобы запрос запускался.

Этот запрос должен действовать как запрос вставки, который скопирует данные из одной таблицы (ptb_registrations) в другую (ptb_users).

может кто-нибудь помочь мне с этим, так как он не работает, и я не уверен, что im заголовок в правильном направлении. Спасибо

// 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()); 
+3

** Вставить в таблицу1 как выбрать * из таблицы2; ** // убедитесь, что у вас есть ту же структуру ** для обеих таблиц. – Lucifer

+0

@Lucifer - вы должны поместить tihs в качестве ответа – CroiOS

+1

Отсутствует запятая между 'password' и' dob' и отсутствующая закрывающая скобка для подвыборки WHERE. – pritaeas

ответ

1

Насколько я понимаю, у вас есть много синтаксических ошибки в вашем запросе:

без запятой между паролем и DOB в операторе выбора, Из таблицы для оператора выбора не указан. Кроме того, если условие выглядит странно (и нет закрывающей скобки для оператора 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 (и поставить новый пароль как пользователь пароль)

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
Смежные вопросы