检查CI + SQL Server

时间:2015-06-11 07:35:20

标签: php mysql sql sql-server codeigniter

这是我在名为model的{​​{1}} schedule_m中的简单代码:

$query = $this->db->update('CUST_GATH', 
      array(
           'new_email' => $data['new_email'],
            'new_hp' => $data['new_hp']
      ), 
      array(
          'name'=>$data['name'], 
          'hp'=>$data['hp'], 
          'email'=>$data['email']
      )
 );
return $query;

MySQL中,我只需执行以下操作即可查看更新查询的结果:

$result = $this->schedule_m->update('schedule', $data);

if($result == true)

但这在SQL Server中不起作用。 $result始终是真的。

我该怎么办?

非常感谢你的帮助

更新

我尝试使用affected_rows

    $this->db->update('CUST_GATH', array('send_to' => $data['send_to'],
        'is_email' => 1), array('name'=>$data['name'], 'hp'=>$data['hp'], 'email'=>$data['email']));
    if ($this->db->affected_rows() > 0)
    {
        return true;
    }
    else
    {
        return false;
    }

但现在我的网络服务停止工作:Response does not contain any data.

这里有什么问题?

解决方法

我还没有解决这个问题,所以我的诀窍就是在之后执行SELECT 更新特定数据以检查数据是否更新。

2 个答案:

答案 0 :(得分:1)

您可以使用affected_rows输出尝试JSON方法:

if($this->db->affected_rows())
{
   return $this->output
                        ->set_content_type('application/json')
                        ->set_output(json_encode(array('OK')));
}

if($this->db->affected_rows())
{
   return $this->output
                        ->set_content_type('application/json')
                        ->set_output(json_encode('OK'));
}

答案 1 :(得分:1)

您必须使用受影响的行数

$result = $this->schedule_m->update('schedule', $data);
if($this->db->affected_rows() > 0)
{
  return TRUE;
}else{
  return FALSE;
}