Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Schwerwiegender Fehler:[]-Operator wird für Zeichenfolgen nicht unterstützt

Sie erhalten diesen Fehler, wenn Sie versuchen, die Short-Array-Push-Syntax für eine Zeichenfolge zu verwenden.

Zum Beispiel diese

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

Ich würde vermuten, dass einer oder mehrere Ihrer $name , $date , $text oder $date2 Variablen wurde als String initialisiert.

Bearbeiten: Wenn Sie sich Ihre Frage noch einmal ansehen, sieht es so aus, als ob Sie sie nicht wirklich als Arrays verwenden möchten, da Sie sie weiter unten als Zeichenfolgen behandeln.

Ändern Sie in diesem Fall Ihre Zuweisungen in

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

Es scheint einige Probleme mit PHP 7 und Code zu geben, der den leeren Index verwendet Array-Push-Syntax.

Um es deutlich zu machen, diese funktionieren gut in PHP 7+

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

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

Was funktioniert nicht versucht, empty-index zu verwenden drücken Sie auf jede Variable, die als Zeichenfolge, Zahl, Objekt usw. deklariert ist, dh

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

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

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

Alle führen zu einem fatalen Fehler.