如何知道是否使用mysqli dbdriver删除行

时间:2012-04-24 11:17:34

标签: php mysql codeigniter mysqli delete-row

我正在使用codeigniter 2.1.0和mysqli dbdriver。 我有以下查询,想知道什么时候成功

$query = $this->db->query("delete FROM abc WHERE id IN (" . $IdList . ")");

如何知道相关行是否已删除?

2 个答案:

答案 0 :(得分:2)

$this->db->affected_rows()正是您要找的。您应该能够将该结果与预期的已删除行数进行比较。

同时引用USER GUIDE

  

执行“写入”类型查询(插入,更新等)时显示受影响的行数。

     

注意:在MySQL中,“DELETE FROM TABLE”返回0个受影响的行。该   数据库类有一个小的hack,允许它返回正确的   受影响的行数。默认情况下,此hack已启用但可以   在数据库驱动程序文件中关闭。

答案 1 :(得分:1)

来自CodeIgniter User Guide

  

query() 函数返回数据库结果对象,当"读取"运行类型查询,您可以使用show your results。当"写"运行类型查询只需返回TRUEFALSE,具体取决于成功或失败。

因此,$query变量成功时为TRUE,失败时为FALSE