2014-03-12 161 views
0

我有一个表格,我想插入2个不同的表格(orderorder_etails)。这是我做的。但它只以一种形式插入。使用单一的php表格插入数据到多个Mysql表格

<?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); 

?> 
+0

你执行'$ sql'而不是'$ sql1' –

+0

** **从不把'$ _POST'数据直接查询。您必须**使用正确的[转义](http://bobby-tables.com/php)来避免严重的[SQL注入漏洞](http://bobby-tables.com/)。目前还不清楚为什么你将'mysql_query'和'mysqli'混合为'mysqli'具有['bind_param'](http://ca.php.net/manual/en/mysqli-stmt.bind-param.php )方法,整齐地避免了所有这些混乱。 – tadman

回答

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"; 

你也应该考虑包装的两次执行的交易,因此,如果第二个插入失败第一也将回滚。

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 
} 
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"; 
?> 
相关问题