Ir al contenido principal
Todas las coleccionesPrestaShopPrestaShop
PHP Fatal error: Uncaught Error: Call to a member function query() on null
PHP Fatal error: Uncaught Error: Call to a member function query() on null
Actualizado hace más de 3 meses

Si activas el módulo de LiteSpeed Cache para PrestaShop y en el archivo error_log de tu web ves el siguiente error:

PHP Fatal error: Uncaught Error: Call to a member function query() on null

El error completo puede ser algo así:

[STDERR] PHP Fatal error: Uncaught Error: Call to a member function query() on null in /home/usuariocpanel/public_html/classes/db/DbPDO.php:156

Stack trace:

#0 /home/usuariocpanel/public_html/classes/db/Db.php(376): DbPDOCore->_query('\n\t\t\tSELECT `iso...')

#1 /home/usuariocpanel/public_html/classes/db/Db.php(663): DbCore->query('\n\t\t\tSELECT `iso...')

#2 /home/usuariocpanel/public_html/classes/db/Db.php(697): DbCore->getRow('\n\t\t\tSELECT `iso...', true)

#3 /home/usuariocpanel/public_html/classes/Country.php(274): DbCore->getValue('\n\t\t\tSELECT `iso...')

#4 /home/usuariocpanel/public_html/modules/litespeedcache/classes/VaryCookie.php(234): CountryCore::getIsoById(6)

#5 /home/usuariocpanel/public_html/modules/litespeedcache/classes/VaryCookie.php(76): LiteSpeedCacheVaryCookie->init(Object(Context), Object(Cookie))

#6 /home/usuariocpanel/public_html/modules/litespeedcache/classes/VaryCookie.php(101): LiteSpeedCacheVaryCookie->__construct()

#7 /home/usuariocpanel/public_html/modules/litespeedcache/litespeedcache.php(464): LiteSpeedCacheVaryCookie::setVary()

#8 /home/usuariocpanel in /home/usuariocpanel/public_html/classes/db/DbPDO.php on line 156

Para solucionar este error, debes ir a la configuración del módulo de LiteSpeed Cache, ir al apartado Context Vary bypass y escribir la palabra "lang", "ctry" ó "curr" según sea el error que aparezca en el log.

En el ejemplo de arriba vemos que hay un error con "Country.php" por lo tanto en este ejemplo habría que poner la variable "ctry".

Si está relacionado con "lang" entonces debes poner "lang". Ejemplo:

Más info sobre este bug:

NOTA: En el caso de que los errores se sigan produciendo, cambiar la línea del archivo "/modules/litespeedcache/classes/VaryCookie.php":

Reemplazar en línea 221:

$isMobile = $diffMobile ? $context->getMobileDevice() : false;


por:

$isMobile = $diffMobile ? $context->isMobile() : false;
¿Ha quedado contestada tu pregunta?