Php 先到先得

Php 先到先得,php,mysql,Php,Mysql,我是一个php新手,正在开发一个Web服务来增加iphone端的itemQuantity。当用户点击+按钮多次增加一个项目的数量时,它有时不能准确地增加数量。每次iphone都会给我发送更多的信息。我是说26,然后27,然后28 但当我试着调试它时,我发现有一段时间它首先为数据库提供28,然后更新为27。有人能帮忙吗?我使用的函数如下 function update_query($tblName,$queryArr,$condition) { if(!empty($this->_datab

我是一个php新手,正在开发一个Web服务来增加iphone端的itemQuantity。当用户点击+按钮多次增加一个项目的数量时,它有时不能准确地增加数量。每次iphone都会给我发送更多的信息。我是说26,然后27,然后28

但当我试着调试它时,我发现有一段时间它首先为数据库提供28,然后更新为27。有人能帮忙吗?我使用的函数如下

function update_query($tblName,$queryArr,$condition)
{
if(!empty($this->_database)){
if(!mysql_select_db($this->_database, $this->_link) ) 
{
 $this->_errorstr = "Couldn't change database: ".$this->_database."
 My-SQL     Error ".mysql_error($this->_link);
 }
 }
 $fields=@array_keys($queryArr);
 $values=@array_values($queryArr);
 $update="";
 for($i=0;$i<count($values);$i++)
 {
$update.="$fields[$i]='".addslashes($values[$i])."',";
 }
 $update=substr($update,0,-1);
  $query="update $tblName set $update $condition";
//  echo $query


   //echo  $query."<br>";
 //die;
  $this->_errorstr = "";
  $this->_query = $query;
  $this->_result = mysql_query( $this->_query, $this->_link );
  if ( ! $this->_result )
  {
    $this->_errorstr = "Error : ".mysql_error( $this->_link );
    $this->_success = false;
  }
 else
 {
   $this->_success = true;

}
return $this->_success;
 }
函数更新\u查询($tblName,$queryar,$condition)
{
如果(!empty($this->_数据库)){
如果(!mysql\u select\u db($this->\u database,$this->\u link))
{
$this->\u errorstr=“无法更改数据库:”.$this->\u数据库。“
我的SQL错误“.mysql\u错误($this->\u链接);
}
}
$fields=@array\u key($queryArr);
$values=@array_values($queryArr);
$update=“”;
对于($i=0;$i_errorstr=”“;
$this->\u query=$query;
$this->\u result=mysql\u查询($this->\u查询,$this->\u链接);
如果(!$this->\u结果)
{
$this->\u errorstr=“Error:.mysql\u Error($this->\u链接);
$this->_success=false;
}
其他的
{
$this->_success=true;
}
返回$this->\u success;
}

如果两个请求同时到达应用程序,并且都从数据库中读取相同的值,会发生什么情况

在mysql查询中使用
SET quantity=quantity+1

这并不能解决iphone应用程序中的显示问题,但至少用户命令已存储在数据中


要解决显示问题,您需要更改应用程序的设计。例如,在客户端增加并稍后存储。

删除那些
@
符号,您可能会看到错误…您的请求是否以正确的顺序从iphone中到达?您是否让它在用户每次点击“增加数量”按钮时发送请求tton在他们的手机上?你需要提供更多的信息。请参阅常见问题解答:你的意思是,当客户增加商品数量时,服务器必须一路处理这些变化?带宽和CPU都是多么浪费。非常感谢hakre..回答你的问题“如果两个请求到达….会发生什么情况?”,它在数据库中存储27而不是28..它首先在datbase中保存28,然后用27更新它。。。。