使用单个php表单在多个Mysql表中插入数据

时间:2014-03-12 23:07:36

标签: php mysql post

我有一个包含数据的表单,我想在2个不同的表格中插入(orderorder_etails)。这就是我做的。但它只插入一种形式。

<?php
include '../db/connect.php';

$sql="INSERT INTO order_etails (part_id, quantity, price, status_id,order_id)
  VALUES
        ('$_POST[part_id]','$_POST[quantity]','$_POST[price]','$_POST[status_id]','$_POST[order_id]     '),
('$_POST[part_id2]','$_POST[quantity2]','$_POST[price2]','$_POST[status_id2]','$_POST[order    _id2]'),
('$_POST[part_id3]','$_POST[quantity3]','$_POST[price3]','$_POST[status_id3]','$_POST[order    _id3]')";

$sql1="INSERT INTO order (platform)
VALUE
('$_POST[platform]')";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
 }
echo "record(s) added";

mysqli_close($con);

?>

我也试过这个:

<?php
include '../db/connect.php';


$sql="INSERT INTO order_details (part_id, quantity, price, status_id,order_id)
VALUES
('$_POST[part_id]','$_POST[quantity]','$_POST[price]','$_POST[status_id]','$_POST[order_id]'),
('$_POST[part_id2]','$_POST[quantity2]','$_POST[price2]','$_POST[status_id2]','$_POST[order_id2]'),
   ('$_POST[part_id3]','$_POST[quantity3]','$_POST[price3]','$_POST[status_id3]','$_POST[order_id3]');

INSERT INTO order (platform)
VALUE
('$_POST[platform]')";


mysql_query($sql1);

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "record(s) added";

mysqli_close($con);

?>

3 个答案:

答案 0 :(得分:1)

在第二个查询中尝试VALUES而不是VALUE

此外,您似乎无法在任何一个示例中实际执行这两个查询。你应该有类似的东西:

if (!mysqli_query($con,$sql))
{
    die('Error: ' . mysqli_error($con));
}
if (!mysqli_query($con,$sql1))
{
    die('Error: ' . mysqli_error($con));
}
echo "record(s) added";

您还应该考虑在事务中包装两个执行,这样如果第二个插入失败,第一个插入也将被回滚。

答案 1 :(得分:0)

首先,您需要使用mysql多查询。

$sql="INSERT INTO order_details (part_id, quantity, price, status_id,order_id)
  VALUES
  ('$_POST[part_id]','$_POST[quantity]','$_POST[price]','$_POST[status_id]','$_POST[order_id]'),
  ('$_POST[part_id2]','$_POST[quantity2]','$_POST[price2]','$_POST[status_id2]','$_POST[order_id2]'),
  ('$_POST[part_id3]','$_POST[quantity3]','$_POST[price3]','$_POST[status_id3]','$_POST[order_id3]');
  $sql.= INSERT INTO order (platform)
  VALUES
  ('$_POST[platform]')";


 if (mysqli_multi_query($link, $sql)) {
  //do action 
 }

答案 2 :(得分:0)

谢谢你们俩。它起作用,我就是这样做的:

<?php
  include '../db/connect.php';
  $sql="INSERT INTO order_details (part_id, quantity, price, status_id,order_id)
  VALUES

 ('$_POST[part_id]','$_POST[quantity]','$_POST[price]','$_POST[status_id]','$_POST[order_id]'),
 ('$_POST[part_id2]','$_POST[quantity2]','$_POST[price2]','$_POST[status_id2]','$_POST[order_id2]'),
 ('$_POST[part_id3]','$_POST[quantity3]','$_POST[price3]','$_POST[status_id3]','$_POST[order_id3]')";

 $sql1="INSERT INTO order (platform)
 VALUES
 ('$_POST[platform]')";

 if (!mysqli_query($con,$sql))
 {
  die('Error: ' . mysqli_error($con));
 }
 if (!mysqli_query($con,$sql1))
 {
  die('Error: ' . mysqli_error($con));
 }
 echo "record(s) added";  
?>