MySQL查询在循环内执行了4次

时间:2011-12-06 作者:Joshua

通过使用exec-php 插件,这样我可以运行比标准WordPress页面更复杂的页面。到目前为止,我对这个插件没有任何问题。

我最近将一个独立于WordPress使用的页面移动到WordPress系统内部。现在不是运行INSERT mysql查询一次,它运行了4次,在数据库中留下了3个冗余行。就我所知,在这个问题上没有任何帮助,有没有人遇到过这个问题,或者知道如何绕过这个问题?

因为这可能会影响我使用的答案mysql_query() 赞成$wpdb->query().

编辑:
我已经重写了页面,以使用最合适的$wbdb 功能(my code can be found here).

此外,我发现当我使用$wpdb->flush(); 它只插入1行,但似乎打破了循环,因为它没有加载模板。

1 个回复
最合适的回答,由SO网友:Otto 整理而成

使用插件在内容中运行PHP代码不是最明智的做法,尤其是当所述代码不是idempotent.

基本上,您不能保证您的代码在每次页面加载时只运行一次,因为系统中的几个不同的东西可能会处理您的内容,从而多次执行您的代码。

创建一个Page Template ,然后将其附加到相关页面。另外,重写代码,以便多次调用不会产生错误的结果(人们经常双击web上的按钮等)。

结束

相关推荐

致命错误:在第1561行的public_html/wp-includes/reWrite.php中,允许的内存大小146800640字节耗尽(尝试分配57字节)

我不知道这是怎么发生的。周末我在我的网站上工作,一切都很好。今天早上我走进办公室时,我去了现场,得到了这个:Fatal error: Allowed memory size of 146800640 bytes exhausted (tried to allocate 57 bytes) in public_html/wp-includes/rewrite.php on line 1561 我搜索并找到了一些提供解决方案的文章,但没有一篇对我有用。我注意到,在每种情况下,受影响的文件通常是不同的