我必须编写一个带有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");
答案 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')";