ti-enxame.com

JDatabaseDriver-> replacePrefix () Tamanho de memória permitido de ... bytes esgotados

Relatado pelo Item do rastreador de problemas nº 33711

Ao tentar inserir um BLOB> 3MB no banco de dados, ocorre o seguinte erro:

Erro fatal: tamanho de memória permitido de 134217728 bytes esgotado (tentou alocar 4252768 bytes) em ...\libraries\joomla\database\driver.php na linha 1638

Por que JDatabaseDriver->replacePrefix( ) está consumindo tanta memória?

5
Valentin Despa

Basicamente, não há nada errado com replacePrefix().

O que realmente acontece é que você está enviando para o MySQL uma string muito grande para uma configuração predefinida (max_allowed_packet) E está relatando o erro MySQL server has gone away, Conforme explicado em O servidor MySQL desapareceu, obstruindo a importação de grandes despejos.

Agora, o Joomla acha que isso é apenas um erro temporário e tenta novamente a consulta, executando novamente o método execute() repetidamente, até que a memória se esgote.

A solução para esse problema é aumentar o valor de max_allowed_packet Em [mysqld] Em my.ini Para um valor maior.

6
Valentin Despa