2017-04-20 97 views
0

我有一种形式,让我们说账单形式。我有3张桌子。如何在同一时间使用多个表插入查询?

  1. 法案(billId->主键)
  2. billdetails(billdetailId->主键,billId-> foregin键)
  3. 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即bill表的主键在billdetailsfintran表中。但有了这个查询,我只能在billdetail表中得到这个。在fintran表中我得到了billdetail表的主键。请帮助我一样。

+1

您的代码很容易受到[** SQL注入攻击**](https://en.wikipedia.org/wiki/SQL_injection)。你应该使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)准备带有绑定参数的语句,如[**这篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步喷射功能于PHP)。 –

+0

您也可以使用'mysqli_insert_id()'将其绑定到一个变量,以便多次使用它。 – JustOnUnderMillions

+0

http://stackoverflow.com/questions/5178697/mysql-insert-into-multiple-tables-database-normalization在具有参数的过程中使用事务。 http://stackoverflow.com/questions/3053593/mysql-insert-into-2-tables告诉你如何获取插入记录的ID。 – xQbert

回答

相关问题