【问题标题】:How to know if rows are deleted using mysqli dbdriver如何知道是否使用 mysqli dbdriver 删除了行
【发布时间】:2012-04-24 11:17:33
【问题描述】:

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

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

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

【问题讨论】:

  • 要非常小心$IdList 已被转义;你可能想阅读SQL injection
  • HI eggyal 问题是我如何知道该行是否已被实际删除,我曾在一个地方尝试过您的选项并且查询已运行但我不知道存在什么问题,但是该行没有从mysql中删除

标签: php mysql codeigniter mysqli delete-row


【解决方案1】:

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

同时引用USER GUIDE

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

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

【讨论】:

    【解决方案2】:

    来自CodeIgniter User Guide

    query() 函数在运行“读取”类型查询时返回一个数据库结果object,您可以将其用于show your results。当运行“写”类型的查询时,它只返回TRUEFALSE,具体取决于成功或失败。

    因此,您的 $query 变量将在成功时为 TRUE,在失败时为 FALSE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多