[英]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.