sql >> Base de Datos >  >> RDS >> Mysql

Error fatal:el operador [] no es compatible con cadenas

Obtiene este error cuando intenta usar la sintaxis de inserción de matriz corta en una cadena.

Por ejemplo, este

$foo = 'foo';
$foo[] = 'bar'; // ERROR!

Me arriesgaría a adivinar que uno o más de sus $name , $date , $text o $date2 variables se ha inicializado como una cadena.

Editar: Mirando nuevamente su pregunta, parece que en realidad no quiere usarlos como matrices, ya que los está tratando como cadenas más abajo.

Si es así, cambie sus asignaciones a

$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];

Parece que hay algunos problemas con PHP 7 y el código que usa el empty-index sintaxis de inserción de matriz.

Para que quede claro, estos funcionan bien en PHP 7+

$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry

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

Qué no funciona está intentando usar empty-index presione cualquier variable declarada como una cadena, número, objeto, etc., es decir,

$declaredAsString = '';
$declaredAsString[] = 'value';

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

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

Todo resulta en un error fatal.