嗨我这里有两个查询作为注册表单的一部分运行,用户注册信息被分成两个表,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");
答案 0 :(得分:0)
我猜是因为您要发送文字字符串:
INSERT INTO ptb_stats ( ... ) VALUES('NULL', 'NULL', ...
省略这些列将是最简单的解决方案:
INSERT INTO ptb_stats (display_name) VALUES ( ... )
答案 1 :(得分: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
中为它赋值