sql >> Database teknologi >  >> RDS >> Mysql

Fatal fejl:[] operator understøttes ikke for strenge

Du får denne fejl, når du forsøger at bruge den korte array-push-syntaks på en streng.

For eksempel denne

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

Jeg vil risikere at gætte på, at en eller flere af dine $name , $date , $text eller $date2 variabler er blevet initialiseret som en streng.

Rediger: Når du ser på dit spørgsmål igen, ser det ud til, at du faktisk ikke vil bruge dem som arrays, da du behandler dem som strenge længere nede.

Hvis det er tilfældet, skal du ændre dine opgaver til

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

Det ser ud til, at der er nogle problemer med PHP 7 og kode ved hjælp af empty-index array push-syntaks.

For at gøre det klart, disse fungerer fint i PHP 7+

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

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

Hvad virker ikke forsøger at bruge empty-index tryk på enhver variabel, der er erklæret som en streng, tal, objekt osv., dvs.

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

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

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

Alt sammen resulterer i en fatal fejl.



  1. SQL Server 2017 Trin for trin installation -1

  2. Android:Sådan indlæses et billede dynamisk fra serveren ved dets navn fra SQlite

  3. MySQL månedligt udsalg af de seneste 12 måneder inklusive måneder uden udsalg

  4. Hvordan får jeg SQLSRV-udvidelsen til at fungere med PHP, da MSSQL er forældet?