查询运行后mysql结果不执行?

时间:2013-03-15 13:22:24

标签: mysql

嗨我这里有两个查询作为注册表单的一部分运行,用户注册信息被分成两个表,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");

2 个答案:

答案 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

中为它赋值