0

こんにちは、登録フォームの一部として実行される 2 つのクエリがあります。ユーザー登録情報は ptb_users と ptb_stats の 2 つのテーブルに分割されます。

両方のクエリは正常に機能しています。ただし、両方のテーブルには自動インクリメント列があり、ptb_users では列 user_id が自動インクリメントに設定され、クエリの最後に user_id 値が ptb_users.id に更新/コピーされるように設定され、user_id と ID が一致します。

しかし、ptb_stats id は自動インクリメント列であり、ptb_stats テーブル内で id から user_id に値を更新/コピーするように依頼しました。

私はこのコードを使用してこれを行っています:

$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id");
 $result2 = mysql_query("UPDATE ptb_users SET ptb_stats.id=ptb_stats.user_id");

何らかの理由で、これは最初のクエリ ($result) で機能し、ptb_users.user_id=ptb_users.id を更新するように要求していますが、($result 2) では機能しません。これが当てはまる理由はありますか?

$query="INSERT INTO ptb_users (user_id,
id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."'
)";
mysql_query($query) or dieerr();
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id");


$query="INSERT INTO ptb_stats (id,
user_id,
display_name )
VALUES('NULL',
'NULL',
'".$username."'
)";
mysql_query($query) or dieerr();
$result2 = mysql_query("UPDATE ptb_stats SET ptb_stats.id=ptb_stats.user_id");
4

2 に答える 2

0

あなたがリテラル文字列を送信しているので、私は推測するでしょう:

INSERT INTO ptb_stats ( ... ) VALUES('NULL', 'NULL', ... 

これらの列を省略するのが最も簡単な解決策です。

INSERT INTO ptb_stats (display_name) VALUES ( ... )
于 2013-03-15T13:26:52.520 に答える
0

いくつかのことが飛び出します:-

$query="INSERT INTO ptb_users (user_id,
id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."'
)";
mysql_query($query) or dieerr();
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id");

user_id は自動インクリメント列であると言いますが、更新を使用して id 列から値を取得しようとしています。

ここでは: -

$query="INSERT INTO ptb_stats (id,
user_id,
display_name )
VALUES('NULL',
'NULL',
'".$username."'
)";
mysql_query($query) or dieerr();
$result2 = mysql_query("UPDATE ptb_stats SET ptb_stats.id=ptb_stats.user_id");

id は自動インクリメント列だと言いますが、user_id からの値を割り当てようとしています

于 2013-03-15T13:37:22.053 に答える