Jump to content

Recommended Posts

     Boa tarde, estou recebendo o seguinte erro quando tento acessar um módulo ou serviço no gerenciador da minha loja: 

[PrestaShop] Fatal error in module file :/home/***/public_html/classes/db/DbPDO.php:
Call to a member function rowCount() on a non-object

 

    Minha versão do prestashop é 1.6.1.2, alguém me ajuda por favor estou precisando liberar a loja e ainda não consegui resolver isso. desde já agradeço!

post-1289376-0-50774600-1472835146_thumb.png

Edited by Ronaldo.f.t (see edit history)

Share this post


Link to post
Share on other sites

     Boa tarde, estou com problema ao editar um produto qualquer da minha loja virtual que segue na imagem anexa. ao invés de salvar  me redireciona para uma pagina e mostra um erro 500.

post-1289376-0-30053200-1472835817_thumb.png

Share this post


Link to post
Share on other sites

Ative o modo debug, e verifique o erro que está escrevendo, ou entao leia os logs de erro do servidor. Provavelmente o seu servidor nao está configurado com os requisitos mínimos que Prestashop necessita. Para lhe dizer o que está acontecendo precisamos uma linha de erro.

 

Ativar modo debug: http://www.prestashop.com/forums/topic/282165-ativar-modo-debug/

  • Like 1

Share this post


Link to post
Share on other sites

Qual a versao php em uso e qual a versao mySQL. O problema está localizado no banco de dados. O erro vem somente com estas duas linhas ? Nao existem outras ? Alguma tabela do seu banco de dados deve estar corrupta. Peca ao seu provedor consertar tabelas quebradas no banco de dados. Ele deve saber o que fazer.

  • Like 1

Share this post


Link to post
Share on other sites

Sim, somente essas linhas o erro. vou verificar a versão do php e mysql. quanto a ativar esse modo de debug eu vou tentar tambem para melhor reportar esse erro.

Share this post


Link to post
Share on other sites

Eu acrescentei uma linha á minha resposta:

 

Alguma tabela do seu banco de dados deve estar corrupta. Peca ao seu provedor consertar tabelas quebradas no banco de dados. Ele deve saber o que fazer.

  • Like 1

Share this post


Link to post
Share on other sites

     Como assim alguma tabela corrupta? não entendi, quem tem acesso ao servidor sou eu mesmo. como eu sei se tem essas tabelas corruptas e como consertar? grato!

Edited by Ronaldo.f.t (see edit history)

Share this post


Link to post
Share on other sites

Existem muitos tools para consertar o banco de dados. Eu uso o HeidiSQL para isto. Ele identifica com uma busca especial tabelas e indexes quebrados, e tem a opcao automática para consertar as mesma.

 

Nao sei qual tool vc. está usando para acessar o banco de dados. phpMyAdmin ?

 

Veja aqui tutorial: http://php.about.com/od/mysqladministration/qt/repair_mysql.htm

  • Like 1

Share this post


Link to post
Share on other sites

     Eu acesso pelo própio gerenciador mysql do cpanel. como eu faço para realizar esse procedimento com essa ferramenta citada?

tem algum link ai de algum video ou blog? aaah sim desculpe eu vou ver o seu link.

 

  • Tipo de servidor: MySQL
  • Versão do servidor: 5.6.31 - MySQL Community Server (GPL)
  • PHP 5.4

 

     O problema pode estar relaciona a isso? o meu tema diz as seguintes informações: 

Programa Necessário

  • Adobe Photoshop CS+
  • For uncompressing a template ZIP package: WinZip 9+ (Windows); Stuffit Expander 10+ (Mac)
  • Apache Server
  • PHP v. 5 or higher
  • MySQL 4.1.14 or later
  • Sublime Text2 or later, Notepad++ or any php-editor
Edited by Ronaldo.f.t (see edit history)

Share this post


Link to post
Share on other sites

A ferramenta do cPanel é o phpmyAdmin. Te linkei um tutorial no meu último post. É um problema no banco de dados (erro fatal na leitura). Isto é sinal que o seu banco está corrupto e possue um index ou tabela quebrada. Consertando o erro deve sumir.

  • Like 1

Share this post


Link to post
Share on other sites

     Bom dia amigos, eu não consegui implementar essa solução pois faço muitas outras atividades aqui no trabalho. mas hoje eu farei e reportarei se funcionou, muito obrigado por toda atenção!

Share this post


Link to post
Share on other sites

     Boa tarde, ativei o modo de debug e obtive o seguinte erro que segue abaixo:

 

 

 

[PrestaShopDatabaseException]
 
Table 'sagianco_loja.ps_smarty_lazy_cache' doesn't exist
 
 
DELETE FROM `ps_smarty_lazy_cache`
WHERE template_hash='********************' AND cache_id LIKE "blockcms%"
 
at line 791 in file classes/db/Db.php
786.         if ($webservice_call && $errno) {
787.             $dbg = debug_backtrace();
788.             WebserviceRequest::getInstance()->setError(500, '
 '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
789.         } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
790.             if ($sql) {
791.                 throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
792.             }
793. 
794.             throw new PrestaShopDatabaseException($this->getMsgError());
795.         }
796.     }
 
DbCore->displayError - [line 425 - classes/db/Db.php] - [1 Arguments]
DbCore->query - [line 601 - classes/db/Db.php] - [1 Arguments]
DbCore->execute - [line 295 - classes/SmartyCustom.php] - [2 Arguments]
SmartyCustomCore->delete_from_lazy_cache - [line 81 - classes/SmartyCustom.php] - [3 Arguments]
SmartyCustomCore->clearCache - [line 3026 - classes/Tools.php] - [3 Arguments]
ToolsCore::clearCache - [line 2428 - classes/module/Module.php] - [4 Arguments]
ModuleCore->_clearCache - [line 671 - modules/blockcms/blockcms.php] - [1 Arguments]
BlockCms->_postProcess - [line 788 - modules/blockcms/blockcms.php]
BlockCms->getContent - [line 867 - controllers/admin/AdminModulesController.php]
AdminModulesControllerCore->postProcessCallback - [line 1116 - controllers/admin/AdminModulesController.php]
AdminModulesControllerCore->postProcess - [line 178 - classes/controller/Controller.php]
ControllerCore->run - [line 367 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 58 - admin/index.php]
 
     Acessando o banco de dados pude perceber que essa tabela realmente não existe. Mas existe uma chamada: ps_smarty_cache.
Edited by Ronaldo.f.t (see edit history)

Share this post


Link to post
Share on other sites

Possivelmente houve uma atualização do PrestaShop mal-sucedida.

Na atualização não pode ter erro, caso contrário certamente vão faltar outras tabelas e campos que são criados na atualização. 

 

Recomendo que restaure o backup da loja (que estava funcionando antes da atualização) e tente atualizar novamente, se possível em localhost ou em outro servidor.

  • Like 1

Share this post


Link to post
Share on other sites

     Infelizmente eu não tenho backup, essa loja está em estagio de desenvolvimento e eu estava quase finalizando. agora não sei o que fazer aprendi fazer o backup hoje.

Edited by Ronaldo.f.t (see edit history)

Share this post


Link to post
Share on other sites

     Infelizmente estou tendo que refazer tudo do zero, como eu faço para fazer backup que me permita restaurar tudo de um determinado dia que estava funcionando?

tipo eu quero fazer backups diarios para se acontecer novamente enquanto eu altero a loja eu consiga me recuperar do problema. desde já agradeço a atenção!

Share this post


Link to post
Share on other sites

Quando vc. faz um upgrade da loja com o 1-click-upgrade, este faz automaticamente um back-up. Este fica guardado nas funcoes do 1-click-upgrade. Verifique lá, vc. vai encontrar um rollback.

 

Em geral:

 

back-up do banco de dados vc. pode fazer no back-office na aba: Parametros avancados -> DB back-up.

back-up do FTP: ou entao com o cPanel, ou vc. simplesmente baixa o seu completo FTP para sua máquiona local, para poder subir este novamente.

 

Mais comodo mesmo sao back-ups feitos por cron (cPanel), ou aqueles que o provedor faz. Muitos deles fazem automaticamente e diariamente, mas isto depende tudo do seu plano web. Pergunte o seu provedor.

  • Like 1

Share this post


Link to post
Share on other sites

PS: se a tabela lazy_cache nao existe, entao basta adicioná-la ao banco de dados. Vc. pode tentar ;) MAS ANTES DE MAIS NADA faca um back-up do banco de dados !!!

 

Acrescentar lazy_cache:

 

SQL-query com o phpMyAdmin:

DROP TABLE IF EXISTS `PREFIX_smarty_lazy_cache`;
CREATE TABLE `PREFIX_smarty_lazy_cache` (
  `template_hash` varchar(32) NOT NULL DEFAULT '',
  `cache_id` varchar(255) NOT NULL DEFAULT '',
  `compile_id` varchar(32) NOT NULL DEFAULT '',
  `filepath` varchar(255) NOT NULL DEFAULT '',
  `last_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`template_hash`, `cache_id`, `compile_id`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;

Neste código vc. por favor Altera o PREFIX, para o prefixo do seu banco de dados. Se nao alterou nada, quando instalou ou prefixo é ps_. e fica assim:

DROP TABLE IF EXISTS `ps_smarty_lazy_cache`;
CREATE TABLE `ps_smarty_lazy_cache` (
  `template_hash` varchar(32) NOT NULL DEFAULT '',
  `cache_id` varchar(255) NOT NULL DEFAULT '',
  `compile_id` varchar(32) NOT NULL DEFAULT '',
  `filepath` varchar(255) NOT NULL DEFAULT '',
  `last_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`template_hash`, `cache_id`, `compile_id`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More