phalcon:有一个表,按日期查找半年以为的数据,由于数据量特别大,不能一次:delete删除数据,否则会造成数据表卡顿,数据库锁死。

那么只能循环的删除数据,每次删除100条左右,知道删除为止。,此时需要判断,但删除到没有符合条件的数据,要判断到是否有没有影响到行数。需要$this->db->affectedRows()来判断,删除的sql是否影响到行。

同时我们也不可能:先查找满足条件的数据,然后在删除,虽然能解决,但是此时多了一步查询,然后在foreach删除数据,得不偿失。

在调用:

for($i = 0; $i <10; $i++)
{ $this->modelsManager->executeQuery("delete FROM Demo");
var_dump($this->db->affectedRows()); } 当执行到i=0时,数据已经完全删除了,以后的1-10部,其实都没有数据,但因为调用的是$this->modelsManager->executeQuery,所以,$this->db->affectedRows() 得值会一直是大于0的状态。 或者当i=0时,删除的数据是null时,以后i=1-10后所有步骤,都会为空。 所以此删除方便不可靠。

  

经过查阅后发现,有一种方法可以避免此错误:

for($i = 0; $i < 10; $i++)
{ $this->db->delete("Demo");
或者:
$this->db->delete(
"Demo",
"条件"
); var_dump($this->db->affectedRows());
}

  

或者带limit:

for($i = 0; $i < 10; $i++)
{ $this->db->delete("Demo");
或者:
$this->db->delete(
"Demo",
"条件 limit 10"
); var_dump($this->db->affectedRows());
}

  

最新文章

  1. 学习微信小程序之css9内边距
  2. 图解HTTPS协议加密解密全过程
  3. hibernate日常BUG总结
  4. android firmware 利用UDP socket发送Magic Packet--python版本
  5. Ibatis的简单介绍
  6. eclipse 代码中突然出现特殊字符
  7. Python自动化开发-简介
  8. 转:设置Loadrunner负载机临时文件目录
  9. virtualbox下正确虚拟机修改设备名称
  10. selenium 封装
  11. 正则表达式re模块小结
  12. 国家码和reginCode映射关系
  13. [ts] Property &#39;aaa&#39; does not exist on type &#39;Window&#39; 解决办法
  14. python学习第40天
  15. IIS发布错误及解决
  16. [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
  17. Kendall Rank(肯德尔等级)相关系数
  18. MySQL学习笔记:set autocommit=0和start transaction
  19. dns之缓存。
  20. 自动化测试===adb 解锁手机的思路

热门文章

  1. Java Thread 多线程 介绍
  2. [Vuejs] 关于vue-router里面的subRoutes
  3. Ubuntu14.04安装OpenCV2.4.9
  4. robotium重签名使用解决办法
  5. (temp)catch ip
  6. 4.Git的安装
  7. 阿里yum源
  8. 判断一个 int 向量里是否有相同的数 并且距离在k之内 (2)
  9. 【转】解决eclipse新导入工程无法run as server
  10. Oracle数据库的表结构 简单表的建立