Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro fatal:operador [] não suportado para strings


Você recebe este erro ao tentar usar a sintaxe push de matriz curta em uma string.

Por exemplo, este
$foo = 'foo';
$foo[] = 'bar'; // ERROR!

Eu arriscaria um palpite de que um ou mais de seus $name , $date , $text ou $date2 variáveis ​​foi inicializado como uma string.

Editar: Olhando novamente para sua pergunta, parece que você realmente não quer usá-los como arrays, já que os está tratando como strings mais abaixo.

Em caso afirmativo, altere suas atribuições para
$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];

Parece que há alguns problemas com o PHP 7 e o código usando o empty-index sintaxe de push de matriz.

Para deixar claro, estes funcionam bem em PHP 7+
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry

$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry

O que não funciona está tentando usar empty-index push em qualquer variável declarada como uma string, número, objeto, etc, ou seja
$declaredAsString = '';
$declaredAsString[] = 'value';

$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';

Todos resultam em um erro fatal.