是否可能,从PHP执行时使用ZEND延迟INSERTS?
发布时间:2020-12-13 22:43:36 所属栏目:PHP教程 来源:网络整理
导读:当我有这样的循环时: foreach(...) { $r1 = $zend_db-fetchRow("SELECT ... "); $zend_table-insert($data_array,$where);} ……跑了几千次有可能,$r1不包含在前一个循环中插入的记录吗? 在http://dev.mysql.com/doc/refman/5.1/en/query-cache.html,他们
当我有这样的循环时:
foreach(...) { $r1 = $zend_db->fetchRow("SELECT ... "); $zend_table->insert($data_array,$where); } ……跑了几千次有可能,$r1不包含在前一个循环中插入的记录吗? 在http://dev.mysql.com/doc/refman/5.1/en/query-cache.html,他们写道“查询缓存不返回陈旧数据.当表被修改时,查询缓存中的任何相关条目都被刷新.”但也许ZEND为SELECT或INSERT做了一些意想不到的缓存? 我需要使用交易来解决这个问题吗? 我有双重记录的问题,他们来自哪里没有其他解释.但我不能重现它,因为它发生在两个月前,导入不再存在的csv数据. 解决方法
正如评论中的drew010所说,除非你自己实现,否则Zend_Db不会进行缓存.下次要确定问题,请尝试这样的事情
try { foreach(...) { $r1 = $zend_db->fetchRow("SELECT ... "); $zend_table->insert($data_array,$where); } } catch(Zend_Db_Exception $e) { $logger->log($e->getMessage(),Zend_Log::CRIT); //$logger is instance of Zend_Log } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |