2016-11-15 135 views
0

我试图插入值到mysql数据库表中调用pointofcontact,然后检索主键称为pocid插入到另一个名为学生的表。插入值到MySQL数据库并检索它们插入到另一个表

不知何故,我的代码总是返回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

我不是这方面的专家,但你可能要考虑使用触发器来做到这一点。要么,要么你将不得不包装你的插入和选择在一个单一的交易。 –

+0

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 
} 
0

检查您的数据库表设计为POCID列。当你创建了一个表,你必须将其添加主键和AUTO_INCREMENT ...

CREATE TABLE table_name (id int primary key auto_increment,....) 

如果你已经这样做的话,使用mysqli_insert_id()来获取最后插入的ID。

+0

也许这就是为什么它总是加0表 –

+0

我知道。它已经完成了。能够从我的网站应用程序获得通过c#编码的pocid,但无法通过php获取这些信息。 –

+0

然后将最后插入的ID存储到变量中,然后根据此ID获取值。 –