我正在实现一个在更新/添加数据库行后触发的基本侦听器(一个civicrm_post挂钩)。我遇到的问题是,即使表中的一行已更改,通过 Joomla 数据库对象加载同一行也会返回先前的值。
假设我将对象的名称从“foo”更改为“bar”。
$db =& JFactory::getDBO();
$db->setQuery("SELECT ...");
返回 'foo' 作为名称,而
$c = mysql_connect("host","user","password");
mysql_select_db("db", $c);
$result = mysql_query("SELECT ...");
返回“酒吧”。
是否正在进行任何缓存,有什么方法可以清除它吗?
以供参考:
- Joomla 2.5.6
- PHP 5.3.10
- MySQL 5.1.36
编辑:这是我在 CiviCRM 论坛上开始的一个主题,它提供了更多细节:http: //forum.civicrm.org/index.php/topic,25200.0.html
编辑2:“最新发展”和一些澄清。
我正在使用钩子推送更新的 iCal 提要,这是 CiviCRM 的前端组件提供的提要。当钩子触发时它不会更新,即使数据库在那时更新并且两端都没有缓存。显然 CiviCRM 使用自己的数据库连接器,因此上述措辞不再严格有效。使用稍后触发的钩子(civicrm_postProcess)解决了这个问题,但这是一个“hacky”修复。