sql >> Databasteknik >  >> RDS >> Mysql

Allvarligt fel:[] operatör stöds inte för strängar

Du får det här felet när du försöker använda den korta array-push-syntaxen på en sträng.

Till exempel detta

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

Jag skulle riskera att gissa att en eller flera av dina $name , $date , $text eller $date2 variabler har initierats som en sträng.

Redigera: När du tittar på din fråga igen, verkar det som att du faktiskt inte vill använda dem som arrayer eftersom du behandlar dem som strängar längre ner.

Om så är fallet, ändra dina tilldelningar till

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

Det verkar finnas några problem med PHP 7 och kod som använder empty-index array push-syntax.

För att göra det tydligt, dessa fungerar bra i PHP 7+

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

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

Vad fungerar inte försöker använda empty-index tryck på valfri variabel deklarerad som en sträng, nummer, objekt, etc, dvs

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

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

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

Allt resulterar i ett fatalt fel.



  1. Använd DB_ID() för att returnera ID:t för en databas i SQL Server

  2. Hur man anger en flik i en postgres front-end COPY

  3. Flera infoga SQL-oracle

  4. Oracle ODP.NET version agnostiskt alternativ