我试图在点击提交按钮后插入几个相关的数据库表中的一些数据,我的表是:
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 ;
有人可以帮助我吗?
谢谢!
答案 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();