使用相关密钥插入两个不同的表

时间:2014-05-13 02:26:48

标签: php mysql insert primary-key

我试图在点击提交按钮后插入几个相关的数据库表中的一些数据,我的表是:

USERS:ID(主键),用户,名称,密码

LEVELS:ID,User_ID(外键),Level1,Level2,Level3,Level4

其中表级别的User_ID与用户的主键ID相同。

我想用php制作这个插件,我的代码如下:     

$host="xxxxxx"; // Host name 
$username="xxxxxx"; // Mysql username 
$password="xxxxxx"; // Mysql password 
$db_name="xxxxxx"; // Database name 
$tbl_name="USERS"; // Table name 

// Connect to server and select databse.
$dbh= mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// sent from form 
$name=$_POST["name"]; 
$user=$_POST["user"];
$password=$_POST["password"]; 
$L4=$_POST["L4"]; 
$L3=$_POST["L3"];
$L2=$_POST["L2"]; 
$L1=$_POST["L1"]; 

$sql="INSERT INTO $tbl_name (Name, User, Password) VALUES('$name','$user','$password');";
$userid = mysql_insert_id();
$tab1= mysql_query($sql, $dbh) or die ("problem query 1");

$sql2 = "INSERT INTO LEVELS (User_ID, Level1, Level2, Level3, Level4) VALUES('$userid','$L1','$L2','$L3','$L4');";
$tab2= mysql_query($sql2, $dbh) or die ("problem query 2");

要么,我不知道如何关联表,或者这里有什么错误,因为只有第一个sql语句正在执行,第二个打印出问题查询2&#39 ;

有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

$userid = mysql_insert_id();
执行插入查询后应调用

,并且在执行第一个查询之前调用它。

所以它应该是

$sql="INSERT INTO $tbl_name (Name, User, Password) VALUES('$name','$user','$password');";
$tab1= mysql_query($sql, $dbh) or die ("problem query 1");
$userid = mysql_insert_id();