首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当查询发生时,如何“关闭”数据库?

问当查询发生时,如何“关闭”数据库?
EN

Stack Overflow用户
提问于 2011-04-12 23:37:59
回答 5查看 307关注 0票数 5
代码语言:javascript
复制
$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钱吗?如果是,我如何避免这种情况?

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-12 23:40:46

如果您担心同时运行的两个查询会导致数据库中的不平衡状态,那么您应该使用transactions:http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html

事务有助于保持数据的状态正确。

票数 4
EN

Stack Overflow用户

发布于 2011-04-12 23:40:03

您可以在查询之前使用LOCK TABLE table WRITE,在查询之后使用UNLOCK TABLE table。

http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

票数 1
EN

Stack Overflow用户

发布于 2011-04-12 23:40:26

你需要transactions。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5637871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档