我试图将值插入到名为pointofcontact的mysql数据库表中,然后检索名为pocid的主键以插入到另一个名为students的表中。
不知何故,我的代码总是将pocid返回为0,我不知道为什么。很高兴得到一些帮助。任何帮助将不胜感激!这是我的代码:
$query="insert into pointofcontact(Username,Password,FirstName,LastName,ContactNumber,EmailAddress,Address,Gender,Status,BackupContactNumber,ProfilePic) values ('$username','$password','$firstname','$lastname','$mobilenumber','$email','$address','$gender','Normal','$backup','$attch')";
if($con->query($query) === TRUE)
{
$query2="select POCID from pointofcontact where username= '$username'";
$result2=$con->query($query2);
if($result2 ->num_rows > 0)
{
while($row2 = $result2->fetch_assoc())
{
$pocid = $row2['POCID'];
$query3= "insert into student(StudentFirstName, StudentLastName, Allergies, NRIC, POCID) values ('$cfirstname','$clastname','$callergies','$cnric','$POCID')";
}
if($con->query($query3) === TRUE)
{
}
else
{
}
}
}
else
{
echo "error";
}
答案 0 :(得分:1)
我还没有测试过这个,但它应该做你需要的:
// assuming proper validation and escaping is completed...
if($con->query("INSERT INTO pointofcontact (Username,Password,FirstName,LastName,ContactNumber,EmailAddress,Address,Gender,Status,BackupContactNumber,ProfilePic) VALUES ('$username','$password','$firstname','$lastname','$mobilenumber','$email','$address','$gender','Normal','$backup','$attch');"){
$POCID=$con->insert_id;
if($con->query("INSERT INTO student (StudentFirstName, StudentLastName, Allergies, NRIC, POCID) VALUES ('$cfirstname','$clastname','$callergies','$cnric','$POCID');")){
// Pass
}else{
// Fail
}
}else{
// Fail
}
答案 1 :(得分:0)
检查数据库表设计中的POCID列。创建该表时,必须将其添加为主键和auto_increment ...
CREATE TABLE table_name (id int primary key auto_increment,....)
如果您已经这样做了,请使用mysqli_insert_id()获取最后插入的ID。