如何查找成功执行的查询?

时间:2011-08-22 15:05:40

标签: php codeigniter

即时通讯使用codeigniter 2.0.2,这来自其用户指南

$data = array(
               'title' => $title,
               'name' => $name,
               'date' => $date
            );

$this->db->where('id', $id);
$this->db->update('mytable', $data); 

我的问题是,一旦执行了,你如何找到它的正确执行?

3 个答案:

答案 0 :(得分:4)

update函数返回一个值:

$result = $this->db->update('mytable', $data);

检查该值是TRUE(成功)还是FALSE(失败)。 update在内部运行query,然后返回queryRef)的返回值:

  

query()函数在运行“read”类型查询时返回数据库结果对象,您可以使用它来显示结果。当运行“写入”类型查询时,它会根据成功或失败返回TRUE或FALSE。

答案 1 :(得分:2)

使用

$this->db->affected_rows()

查看写入类型查询(更新,插入等等)

的行数

http://codeigniter.com/user_guide/database/helpers.html

答案 2 :(得分:0)

这两个答案都有效。您只需根据具体情况使用每一个。如果您只是检查查询是否已执行,请使用以下方法:

$result = $this->db->update('mytable', $data);

如果你真的想要第二种方法受影响的行数更好:

$this->db->affected_rows()

但是我总是使用第二种方法。更新查询是一个很好的例子。查询可以成功,但数据库上仍然没有更新,因为您尝试更新的值实际上等于您在查询中发送的值。

这将是误报。受影响的行将为0。 我希望它有所帮助=)