0

您好我这里有两个查询作为注册表的一部分运行,用户注册信息被分成两个表,ptb_users 和 ptb_stats。

两个查询都工作正常。但是,两个表都有一个自动增量列,在 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 回答