【问题标题】:Check update query result in CI + SQL Server在 CI + SQL Server 中检查更新查询结果
【发布时间】:2015-06-11 07:35:19
【问题描述】:

这是我在 CI 的 model 中名为 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 after i UPDATE the specific data 以检查数据是否已更新。

【问题讨论】:

    标签: php mysql sql sql-server codeigniter


    【解决方案1】:

    你必须使用受影响的行数

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

    【讨论】:

    • 我应该在controller 中使用affected_rows 吗?
    • 您在控制器或模型中的何处编写更新查询??
    【解决方案2】:

    您可以尝试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'));
    }
    

    【讨论】:

    • Response does not contain any data. 表示您应该返回如下数据:if($this->db->affected_rows()){ return "OK";}
    • @BlazeTama 您必须告诉我们您的网络服务期望什么?
    • 在您的示例中,我希望它以 JSON 格式返回“OK”
    • 非常感谢您的帮助。我会尝试你的解决方案:)
    猜你喜欢
    • 2015-09-04
    • 2014-01-18
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2017-04-05
    • 2016-07-03
    相关资源
    最近更新 更多