2011-10-11 107 views
0

我正试图在用户注册到我的网站时同时插入3个表格。 这里是我的表格:多个插入查询和中间传递变量。 mysql和php

UPDATED ANSWER。简化了问题:

表1

ControlPanelID 
UserDescription 
ChannelCommentsID 
UserID 

表2

UserID 
UserName 
Password 
Email 
Reputation 
ControlPanelID 
Role 

这里是我的3 INSERT语句:

$queryString= 
      "INSERT INTO ControlPanel VALUES("",ChannelCommentsID , userID)". 
      "INSERT INTO users VALUES($userNam,$pass,$email, ,'anonym')"; 

我想要的用户名行两个表中增加如何成为成就感?

换句话说两次打开与数据库的连接...(即2个查询)?

+0

你的模式是不是第三范式ER! :S – JellyBelly

+0

基本上这就是我想要的。用户填写表单,...他的名字和详细信息正在创建,然后用户标识符会变为1.但是我希望UserID在ControlPanel中增加1 。这怎么做?!? –

+1

我的意思是你不能拥有这个属性的两张桌子!是不是一个设计良好的数据库,然后我认为这是不可能做到你想要的! – JellyBelly

回答

0

您可以使用LAST_INSERT_ID()来获取前一个INSERT的AUTOINCREMENT列的值。

在特定情况下,这可能是一个可行的解决方案

$queryString= 
    "INSERT INTO users VALUES($userNam,$pass,$email, ,'anomy')". 
    "INSERT INTO ControlPanel VALUES("",ChannelCommentsID , LAST_INSERT_ID())"; 
+0

我认为那声明就足够了..谢谢 –

+0

德米特里, 不用谢。 –

-1

表2中的用户ID字段应具有属性AUTO_INCREMENT,这将处理每次插入新记录时自动增加数字。

+0

对不起,我不得不审查我的餐桌设计..我现在纠正它的工作!! 1 –