$database->count = "SELECT * FROM table WHERE item_id = 1"
if($database->count == 1)
{
$database->update = "UPDATE users SET money = money - 1000";
$database->delete = "DELETE table WHERE item_id = 1";
}假设我在index.php页面中有以下代码(我刚刚创建了它)。可以同时进行"SELECT * FROM table WHERE item_id = 1"查询,这样两个人就可以得到count 1和-1000钱吗?如果是,我如何避免这种情况?
谢谢。
发布于 2011-04-12 23:40:46
如果您担心同时运行的两个查询会导致数据库中的不平衡状态,那么您应该使用transactions:http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html
事务有助于保持数据的状态正确。
发布于 2011-04-12 23:40:03
您可以在查询之前使用LOCK TABLE table WRITE,在查询之后使用UNLOCK TABLE table。
发布于 2011-04-12 23:40:26
你需要transactions。
https://stackoverflow.com/questions/5637871
复制相似问题