【发布时间】:2012-01-06 05:54:27
【问题描述】:
我正在将 MySQL 与 ExpressionEngine 2.2.1 结合使用。这个版本的 ExpressionEngine 自动带有一个查询模块,我用它来过滤和显示来自一个名为 Freeform 的模块的条目结果。我正在使用 Freeform 版本 3.1.1。所有这些元素都可以很好地协同工作,并在我的本地设置中显示所需的结果。但是,当我将代码推送到生产环境时,我收到了这个错误:
致命错误:在第 183 行的 /var/www/vhosts/xxxxxxxxx.com/systemxxx/expressionengine/modules/query/mod.query.php 中的非对象上调用成员函数 num_rows()
这是从 mod.query.php 的第 183 行开始的这段代码(我没有编写过这个 php 代码,也没有编写过 php 代码,这已经包含在我正在开发的网站中。):
183 if ($query->num_rows() == 0)
184 {
185 return $this->return_data = $this->EE->TMPL->no_results();
186 }
这是我在 HTML 模板中使用查询模块的方式:
{exp:query sql="SELECT first_name, last_name, email, city FROM exp_freeform_entries WHERE city = 'New York'"}
<tr>
<td>{first_name}</td>
<td>{last_name}</td>
<td>{email}</td>
<td>{city}</td>
</tr>
{/exp:query}
有谁知道为什么会出现这个错误?为什么它会发生在生产而不是本地?
任何帮助将不胜感激!
【问题讨论】:
-
欢迎来到 Stack Overflow!您可能没有在查询中进行任何错误检查。您需要检查
mysql_query()调用是否实际成功。否则,如果查询失败,您的脚本将中断。如何做到这一点在mysql_query()或this reference question. 的手册中进行了概述 -
可能您在生产检查时错过了上传一些文件
-
感谢 Hemant,但所有文件都已上传。
标签: php expressionengine freeform