我有一种表格,例如帐单表格。我有3张桌子。


帐单(billId->主键)
billdetails(billdetailId->主键,billId-> foregin键)
fintran(finalId->主键,总共有10个输入形式。


提交时,前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表中票据表的主键。但是通过此查询,我只能在billdetail表中获取此信息。在fintran表中,我得到billdetail表的主键。请同样帮我。

最佳答案

不,您不能在一个MySQL命令中插入多个表。但是,您可以使用事务。


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

08-25 12:13