sql >> Databáze >  >> RDS >> Mysql

Závažná chyba:operátor [] není pro řetězce podporován

Tato chyba se zobrazí při pokusu o použití syntaxe krátkého pole push na řetězec.

Například toto

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

Hádám, že jeden nebo více vašich $name , $date , $text nebo $date2 proměnné byly inicializovány jako řetězec.

Upravit: Když se znovu podíváte na vaši otázku, vypadá to, že je ve skutečnosti nechcete používat jako pole, protože je níže považujete za řetězce.

Pokud ano, změňte své úkoly na

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

Zdá se, že existují nějaké problémy s PHP 7 a kódem používajícím empty-index syntaxe push pole.

Aby bylo jasno, tyto fungují dobře v PHP 7+

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

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

Co nefunguje se pokouší použít empty-index push na jakoukoli proměnnou deklarovanou jako řetězec, číslo, objekt atd., tj.

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

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

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

Všechny mají za následek fatální chybu.



  1. Efektivní monitorování replikace MySQL pomocí řídicích panelů SCUMM:Část 2

  2. Oracle Apex 5.0 – Zobrazení statického obrazu

  3. Najděte nejbližší datum na serveru SQL Server

  4. AKTUALIZACE pomocí CASE a IN - Oracle