Prestashop - non-object 上的成员函数 executeS()
Prestashop - Member function executeS() on a non-object
我有一个 prestashop web sites.I我使用一个模块进行 xml 导出它之前是完美的但是我移动了新服务器并安装了 nginx + php-fqm 但我尝试了很多制作新的 xml 导出错误
致命错误:在第 75
行 /modules/prestacenterxmlexportpro/classes/PcXmlProService.php 中的 non-object 上调用成员函数 executeS()
那75行在getList函数里面,也就是getlist函数
public static function getList()
{
$query = new DbQuery;
$sql = $query
->select('`'.self::$definition['primary'].'` id')
->select('`name`')
->from(self::$definition['table'])
->orderBy('id')
->build();
return self::$db->executeS($sql);
}
- 行是 return self::$db->executeS($sql);
Nginx错误日志是
13 年 3 月 16 日 11:15:53 [错误] 1034#0:*107886 FastCGI 在 stderr 中发送:"PHP message: PHP Fatal error: Call to a member function executeS() on a non-object in /modules/prestacenterxmlexportpro/classes/PcXmlProService.php on line 75" 同时从上游读取响应 header,客户端:127.0.0.1,服务器:www.mywebpage.com,请求:"GET /adminroutee12321/index.php?controller=PcXmlPro&addpc_xmlpro_feed&token=b7e61f451c9a702701c2cd0c10174a3a HTTP/1.1",上游:"fastcgi://unix:/var/run/php5-fpm.sock:",主机:"www.mywebpage.com"
您不应该使用 self::$db
,这是一种古老而糟糕的做法,已经被贬低,甚至可能在新版本的 PrestaShop 中都不可用。
相反,您应该使用 Db::getInstance()->executeS
。
此外,self::$db
仅在扩展它的 ObjectModel
classes 或 classes 中可用。我无法告诉你错误 class 是否扩展 ObjectModel
.
self::$db
可能不起作用的另一个原因是因为您正在使用 public static function
,这意味着静态调用方法 get,这意味着未调用 __construct
函数,这将初始化 self::$db = Db::getInstance()
我有一个 prestashop web sites.I我使用一个模块进行 xml 导出它之前是完美的但是我移动了新服务器并安装了 nginx + php-fqm 但我尝试了很多制作新的 xml 导出错误
致命错误:在第 75
行 /modules/prestacenterxmlexportpro/classes/PcXmlProService.php 中的 non-object 上调用成员函数 executeS()那75行在getList函数里面,也就是getlist函数
public static function getList()
{
$query = new DbQuery;
$sql = $query
->select('`'.self::$definition['primary'].'` id')
->select('`name`')
->from(self::$definition['table'])
->orderBy('id')
->build();
return self::$db->executeS($sql);
}
- 行是 return self::$db->executeS($sql);
Nginx错误日志是 13 年 3 月 16 日 11:15:53 [错误] 1034#0:*107886 FastCGI 在 stderr 中发送:"PHP message: PHP Fatal error: Call to a member function executeS() on a non-object in /modules/prestacenterxmlexportpro/classes/PcXmlProService.php on line 75" 同时从上游读取响应 header,客户端:127.0.0.1,服务器:www.mywebpage.com,请求:"GET /adminroutee12321/index.php?controller=PcXmlPro&addpc_xmlpro_feed&token=b7e61f451c9a702701c2cd0c10174a3a HTTP/1.1",上游:"fastcgi://unix:/var/run/php5-fpm.sock:",主机:"www.mywebpage.com"
您不应该使用 self::$db
,这是一种古老而糟糕的做法,已经被贬低,甚至可能在新版本的 PrestaShop 中都不可用。
相反,您应该使用 Db::getInstance()->executeS
。
此外,self::$db
仅在扩展它的 ObjectModel
classes 或 classes 中可用。我无法告诉你错误 class 是否扩展 ObjectModel
.
self::$db
可能不起作用的另一个原因是因为您正在使用 public static function
,这意味着静态调用方法 get,这意味着未调用 __construct
函数,这将初始化 self::$db = Db::getInstance()