在数据库

时间:2015-06-18 13:38:12

标签: php mysql database

我将订单号存储在mysql数据库中。我的php脚本读取值并将数字加1。

现在我在几家商店使用这个号码,这么多程序会读取并更新价值。

今天我遇到了问题,两个脚本同时读取并获得相同的值。

因此来自两个不同商店的两个不同订单的编号相同????

在日志文件中,我看到两个订单放在同一时间。

$sqls  = "Select value from db_config ";
$sqls .= "WHERE name = 'ordernumber' FOR UPDATE";
$rs = $db->query($sqls);
while($rows=$db->fetch($rs))
{
    $_CONF['aufnr'] = $rows['value'];
}
$sqlu  = "Update db_config ";
$sqlu .= "SET value=value+1 ";
$sqlu .= "WHERE name = 'ordernumber' ";
$ru = $db->query($sqlu);

我该怎样防止这种情况? 对于我的ERP系统,必须有一个连续的数字。

而且我不想锁定桌子,因为有一个错误让桌子锁定了!

我希望,有人有个主意 bye jogi

0 个答案:

没有答案