第一个查询数据用于带有事务的while while循环中的第二个查询。怎么样..?

时间:2016-04-07 11:36:30

标签: php mysql

我必须编写一个带有mysql查询的php脚本来插入和更新数据库中的一些表。我应该使用事务来确保运行所有查询。问题是我必须使用第一个查询数据作为while循环内第二个查询的输入值。我写了一个示例脚本,但它不起作用。没有数据插入或更新。请帮忙..!

这是PHP脚本。

    $processes = array();

    $select_qty = "SELECT * FROM stock_master WHERE itemid='$itemId'";
    $result_qty = mysql_query($select_qty);

    while($row = mysql_fetch_assoc($result_qty)){

        $id = $row['id'];
        $stokqty = $row['availableqty'];


        $processes[] = "UPDATE stock_master SET availableqty = '$stokqty' WHERE itemid = '$id'";
        $processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty')";

    }

    mysql_query("SET AUTOCOMMIT=0");
    mysql_query("START TRANSACTION");  

    $count_processes = count($processes);
    for($i=0; $i < $count_processes; $i++){
        try {
            $q = mysql_query($processes[$i]);
            if (!$q) throw new Exception(mysql_error());
        }
        catch (Exception $e) {
            mysql_query("ROLLBACK");
            break;
        }
    }
    mysql_query("COMMIT");
    mysql_query("SET AUTOCOMMIT=1");

1 个答案:

答案 0 :(得分:0)

嘿,这将是问题。 在此声明中,您已将“,”放在最后

$processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty',)";

从下面的语句中删除“,”:

$processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty')";