函数首次运行时在 mysql 中更新了错误的数据


Wrong data updated in mysql when function runs first time

function renew_status($propertyId){
   $code    =   '';
   $code    =   mt_rand(500000, 999999);
   $q   =   "UPDATE `ps_listings` SET 
                             `accessCode` = $code, 
                             `renew`    =   '0' 
                     WHERE `id` =   $propertyId ";
  mysql_query($q) or die(mysql_error());
  $this->db->select('accessCode')->from('ps_listings');
  $this->db->where(array('id' => $propertyId)); 
  $query = $this->db->get();
  $results = $query->result();
      return $results[0]->accessCode;
}

我正在通过代码点火器函数更新 mysql 表。 当我第一次访问我的函数时,它会更新错误的数字,但是如果我刷新页面,则会更新正确的值。返回$results[0]->访问代码;893195给我这个代码。而在数据库中,它可以保存997228。请帮助我

试试这个

function renew_status($propertyId){
  $code    =   '';
  $code    =   mt_rand(500000, 999999);
  $data = array('accessCode' => $code, 'renew' => '0');
  $this->db->where('id',$propertyId);
  $this->db->update('ps_listings',$data);
  $this->db->select('accessCode');
  $this->db->where('id',$propertyId); 
  $query = $this->db->get('ps_listings');
  $results = $query->result_array();
  return $results[0]->accessCode;
}

1(使用mysql_affected_rows检查作品更新或否。2(我认为刷新页面是错误的方式。使用会话拒绝双重更新。3( 用于调试检索和打印访问代码之前、之后和更新 结果(用户界面(。

1("id"列是唯一的而不是空的吗?

2(以下代码返回什么:

echo count($results);