Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur fatale :l'opérateur [] n'est pas pris en charge pour les chaînes

Vous obtenez cette erreur lorsque vous essayez d'utiliser la syntaxe push de tableau court sur une chaîne.

Par exemple, ceci

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

Je risquerais de deviner qu'un ou plusieurs de vos $name , $date , $text ou $date2 les variables ont été initialisées en tant que chaîne.

Modifier : En regardant à nouveau votre question, il semble que vous ne vouliez pas les utiliser comme des tableaux car vous les traitez comme des chaînes plus bas.

Si c'est le cas, modifiez vos affectations en

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

Il semble qu'il y ait des problèmes avec PHP 7 et le code utilisant le empty-index syntaxe push de tableau.

Pour être clair, ces fonctionnent bien en PHP 7+

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

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

Qu'est-ce qui ne fonctionne pas tente d'utiliser empty-index appuyez sur n'importe quelle variable déclarée comme une chaîne, un nombre, un objet, etc., c'est-à-dire

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

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

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

Tous entraînent une erreur fatale.