Php 查询同步mysql

Php 查询同步mysql,php,mysql,database,Php,Mysql,Database,我是网络编程新手,我正在制作一个网站,我需要知道这件事: 我有一个带有计数器的数据库和一个更新它的php页面。 es 我的问题是: 如果两台电脑同时运行此页面,是否有可能因为下一件事情发生而只更新一台计数器 //counter = 0 pc1 gets the counter, n = 0 and adds 1 n = 1 pc2 gets the counter, n= 0 and adds 1 n = 1 pc1 updates the counter, counter = 1 pc2 up

我是网络编程新手,我正在制作一个网站,我需要知道这件事: 我有一个带有计数器的数据库和一个更新它的php页面。 es

我的问题是: 如果两台电脑同时运行此页面,是否有可能因为下一件事情发生而只更新一台计数器

//counter = 0
pc1 gets the counter, n = 0 and adds 1 n = 1
pc2 gets the counter, n= 0 and adds 1 n = 1
pc1 updates the counter, counter = 1
pc2 updates the counter, counter = 1
或者这两个页面是由服务器一个接一个地处理的?还是mySQL不会让这种情况发生?怎么用?对于学习pourpoes,这两个查询将如何工作?
(很抱歉英文不好)

最好在更新计数器中使用增量,具体如下:

UPDATE `tablename` SET `yourfield` = `yourfield` + $incValue WHERE ...;
而不是

UPDATE `tablename` SET `yourfield` = $newValue WHERE ...;

这将从您的示例中防止竞争条件。

将两个查询合并为一个:
更新表集字段=1+字段
。不确定这是否能解决问题,但它至少会使代码更简单。我需要知道che计数器。是否可以同时通过两个查询(选择+更新)?我需要知道che计数器。是否可以同时传递两个查询(选择+更新)?您可以先增加字段,然后选择它的新值。是的,但是如果pc1加1,然后pc2加1,然后pc1请求计数器,它将有一个错误的值为什么?让我们假设我们有N个访客。Pc1添加,然后pc2添加,然后Pc1请求计数器,它将返回N+2-这是正确的-因为在Pc1请求计数器时,我们已经有N+2个访问者。然后pc2请求值,它将返回N+2,这也是正确的。但这不是我需要的,我需要计数器将其用作id,因此pc1需要id=1和pc2 id=2
UPDATE `tablename` SET `yourfield` = $newValue WHERE ...;