如何同时使用多个表插入查询?

时间:2017-04-20 15:33:19

标签: php mysql insert last-insert-id

我有一个表格让我们说帐单表格。我有3张桌子。

  1. bill(billId->主键)
  2. billdetails(billdetailId->主键,billId-> foregin键)
  3. fintran(finalId - >主键,表格中共有10个输入。
  4. 提交前5个输入应该进入账单表,其他5个输入应该进入账单明细。所有人都将进入决赛桌。我在下面使用了查询。

    BEGIN;
    $sql = mysqli_query($conn,"INSERT INTO `bill`(`societyId`, `unitId`, `memberId`, `area`, `arrear`, `invoiceNumber`, `invoiceDate`, `dueDate`, `billingPeriod`, `total`, `interestOnArrear`, `totalDue`, `email`, `penalty`, `principalArrears`, `interestArrears`, `advancedAdjusted`, `netPending`) VALUES ('".$societyId."','".$unitId."','".$memberId."','".$area."','".$arrear."','".$invoiceNumber."','".$invoiceDate."','".$dueDate."','".$billingPeriod."','".$total."','".$interestOnArrear."','".$totalDue."','".$email."','".$penalty."','".$principalArrears."','".$interestArrears."','".$advancedAdjusted."','".$netPending."')");     
    $memo = $_REQUEST['memo'];
    $charge = $_REQUEST['charge'];
    $sql= mysqli_query($conn,"INSERT INTO `billdetail`(`biilId`, `memo`, `charge`) VALUES (LAST_INSERT_ID(),'".$memo."','".$charge."')");
    $sql= mysqli_query($conn,"INSERT INTO `fintran`(`societyId`, `docId`, `docTypeName`, `docDate`, `unitId`, `unitName`, `memberId`, `memberName`, `comboId`, `ledgerId`, `ledgerName`, `debit`, `credit`, `netValue`) VALUES ('".$societyId."',LAST_INSERT_ID(),'bill','','".$unitId."','".$unitId."','".$memberId."','".$memberId."','','".$charge."','','','','')");
    COMMIT;
    
    插入数据之后

    我希望billId,即billdetailsfintran表中的bill表的主键。但通过此查询,我只能在billdetail表中获取此信息。在fintran表中,我获得了billdetail表的主键。请帮我一样。

1 个答案:

答案 0 :(得分:0)

  

不,您无法在一个MySQL命令中插入多个表。但是,您可以使用交易。

请检查:MySQL Insert into multiple tables? (Database normalization?)