关于php mysql更新的问题

时间:2015-03-26 15:22:08

标签: php mysql

以下代码用于检查产品可用性并在产品可用时更新产品数量。以下代码可以正常工作以避免并发更新吗?谢谢

     $query= "START TRANSACTION; select pd_qty from tbl_product where pd_id='$pid' and pd_qty=0";
     $result=mysql_query($query) or die( mysql_error()); 
     while ($row=mysql_fetch_array($result)){
     shortage=1;
     }
     if (shortage!=1)){
     $query= "update tbl_product set pd_qty = .......;
     insert into tbl_order ....; "   
     mysql_query($query) or die( mysql_error()); 
     COMMIT;"
     } else {
     $query= "COMMIT;"
     mysql_query($query) or die( mysql_error()); 
     } 

1 个答案:

答案 0 :(得分:0)

我修改了这样的代码,它现在可以用吗?

mysql_query('BEGIN');  
query="select pd_qty from tbl_product where pd_id='$pid' and pd_qty=0 for update";
$result=mysql_query($query) or die( mysql_error()); 
while ($row=mysql_fetch_array($result)){
shortage=1;
}
if (shortage!=1)){
$query= "update tbl_product set pd_qty = .......;"   
mysql_query($query) or die( mysql_error()); 
$query= "insert into tbl_order ....; "
mysql_query($query) or die( mysql_error()); 
} 
mysql_query('COMMIT');