0

ユーザーが私のサイトにサインアップすると、登録フォームに記入し、詳細を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());
4

2 に答える 2

1

私が見る限り、クエリには多くの構文ミスがあります。

select ステートメントの password と 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 に挿入します (そして、新しいパスワードをユーザー パスワードとして入れます)。

于 2013-03-14T13:32:50.027 に答える
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
于 2013-03-14T13:33:32.737 に答える