Php 使用相关键插入到两个不同的表中

Php 使用相关键插入到两个不同的表中,php,mysql,insert,primary-key,Php,Mysql,Insert,Primary Key,我试图在单击“提交”按钮后将一些数据插入到几个相关的数据库表中,我的表是: 用户:ID(主键)、用户、名称、密码 级别:ID、用户ID(外键)、级别1、级别2、级别3、级别4 其中,表级别上的用户ID与用户的主键ID相同 我想用php进行此插入,我的代码如下: $host="xxxxxx"; // Host name $username="xxxxxx"; // Mysql username $password="xxxxxx"; // Mysql password $db_name="x

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

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

级别:ID、用户ID(外键)、级别1、级别2、级别3、级别4

其中,表级别上的用户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语句正在执行,而第二条sql语句将打印“问题查询2”

谁能帮帮我吗

谢谢

$userid = mysql_insert_id();
应该在执行insert查询之后调用,在您的情况下,您是在执行第一个查询之前调用它

所以应该是

$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();

您是否从第二个查询中获得了特定错误?此外,您应该考虑清理输入,并使用PDO或Mysqli而不是mysql\u query/mysql\u*。您的代码存在许多潜在的安全问题。没有错误,只是我在“or die();”的括号中加了一个你试过在你的
die
语句中打印出
mysql\u error()
吗?我不确定,但在你的查询中尝试“LEVELS”