PDO有两个类似的查询 - 只有第一个插入

时间:2012-09-17 14:57:30

标签: php mysql pdo

我有一个表单,用户最多可以为发票插入五个订单项。对我来说,最简单的方法是在每次查询之前只进行五次插入并进行isset检查。但问题是,如果我尝试一个接一个地运行这两个查询,只有第一个插入数据。我知道我可以将它们组合成一个PDO查询(事实上确实有效),但它并不适合我的需要。 第二个查询未插入。

// Connect to the database
$conn = new PDO("mysql:host=$DB_HOST;dbname=$DB_DATABASE",$DB_USER,$DB_PASSWORD);

//Set all the data here 
$receiptid = $_POST['receiptid'];
    // .. the rest of the POST data gets set here.


//Insert first line item
$sql = "INSERT INTO lineitems (receiptid, service, description, quantity, unitprice, linetotal) 
        VALUES (:receiptid, :service, :description, :quantity, :unitprice, :linetotal)";
$q = $conn->prepare($sql);
$q->execute(array(':receiptid'=>$receiptid,
                    ':service'=>$service,
                    ':description'=>$description,
                    ':quantity'=>$quantity,
                    ':unitprice'=>$unitprice,
                    ':linetotal'=>$linetotal));

//Insert second line item
$sql = "INSERT INTO lineitems (receiptid, service2, description2, quantity2, unitprice2, linetotal2) 
        VALUES (:receiptid, :service2, :description2, :quantity2, :unitprice2, :linetotal2)";
$q = $conn->prepare($sql);
$q->execute(array(':receiptid'=>$receiptid,
                    ':service2'=>$service2,
                    ':description2'=>$description2,
                    ':quantity2'=>$quantity2,
                    ':unitprice2'=>$unitprice2,
                    ':linetotal2'=>$linetotal2));

1 个答案:

答案 0 :(得分:1)

您的表格是否为每个输入的lineitem编号(即service2,description2等)确实有不同的列?

也许您需要更改第二个插入中的字段名称以匹配第一个中的字段名称。

如果您正在处理未能正确获得预期查询结果的情况(即检查执行结果并在出现问题时查看错误,您将能够快速找到问题的根源。)< / p>