簡體   English   中英

如何使用PHP和MYSQL將數據插入兩個不同的表中

[英]How to insert data into two different tables using PHP and MYSQL

我正在嘗試使用PHP和MySQL將數據插入兩個不同的表中,但數據僅插入第二個表中。 有人可以向我解釋原因並幫助我解決問題。 所以我閱讀了這個StackOverflow解決方案,但是不確定這是否是面向對象風格的PHP,因為我沒有運氣使它對我有用。

<?php
//outputing php errors in development
error_reporting(-1);
ini_set('display_errors', 1);

//adding database config
include_once 'config.php';


//processing post data
if(isset($_POST) && !empty($_POST))
{
// variables for input data

            $company_name = $_POST['company_name'];
            $company_address = $_POST['company_address'];
            $name_of_vessel = $_POST['name_of_vessel'];
            $official_vessel_number = $_POST['official_vessel_number'];
            $port_of_registry = $_POST['port_of_registry'];
            $gross_tonnage = $_POST['gross_tonnage'];
            $imo_number = $_POST['imo_number'];
            $call_sign = $_POST['call_sign'];
            $permit_number = $_POST['permit_number'];
            $date_of_issue_op = $_POST['date_of_issue_op'];
            $date_of_expiry_op =$_POST ['date_of_expiry_op'];
            $date_of_expiry_sp = $_POST['date_of_expiry_sp'];
            $date_of_issue_sp =$_POST ['date_of_issue_sp'];

// SQL query for inserting data into the database



      $stmt = $link->prepare("INSERT INTO `customers` (`company_name`,`company_address`,`name_of_vessel`,`official_vessel_number`, `port_of_registry`, `gross_tonnage`, `imo_number`, `call_sign`, `permit_number`) VALUES (?,?,?,?,?,?,?,?,?)");

      $stmt->bind_param('sssssssss',$company_name, $company_address, $name_of_vessel, $official_vessel_number, $port_of_registry, $gross_tonnage, $imo_number, $call_sign, $permit_number);

$stmt = $link->prepare("INSERT INTO `permits` (`date_of_issue_op`, `date_of_expiry_op`, `date_of_expiry_sp`, `date_of_issue_sp`) VALUES (?,?,?,?)");

      $stmt->bind_param('ssss',$date_of_issue_op , $date_of_expiry_op, $date_of_expiry_sp, $date_of_issue_sp );
      if($stmt->execute()){
            echo "<span style='background-color:green; padding:6px; color:white; font-size:16px;'>Permit created successfully </span>";
      }else{
            echo "<p align=center>Error inserting data.</p>";
            echo mysqli_error($link);
      }

}else{
       echo "<p align=center>Empty form submitted</p>";
}


?>

你有兩次

$link->prepare

第二個覆蓋第一個

如Mabrouki Fakhri所建議的,例如:

// sql query for inserting data into database



$stmt = $link->prepare("INSERT INTO `customers` (`company_name`,`company_address`,`name_of_vessel`,`official_vessel_number`, `port_of_registry`, `gross_tonnage`, `imo_number`, `call_sign`, `permit_number`) VALUES (?,?,?,?,?,?,?,?,?)");

$stmt->bind_param('sssssssss',$company_name, $company_address, $name_of_vessel, $official_vessel_number, $port_of_registry, $gross_tonnage, $imo_number, $call_sign, $permit_number);

$stmt1 = $link->prepare("INSERT INTO `permits` (`date_of_issue_op`, `date_of_expiry_op`, `date_of_expiry_sp`, `date_of_issue_sp`) VALUES (?,?,?,?)");

$stmt1->bind_param('ssss',$date_of_issue_op , $date_of_expiry_op, $date_of_expiry_sp, $date_of_issue_sp );
  if($stmt->execute() && $stmt1->execute()){
        echo "<span style='background-color:green; padding:6px; color:white; font-size:16px;'>Permit created successfully </span>";
  }else{
        echo "<p align=center>Error inserting data.</p>";
        echo mysqli_error($link);
  }

您應該有兩個不同的語句(即stmt1,stmt2),並准備,綁定它們。 然后在兩個不同的語句上同時執行它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM