Home > Article > Backend Development > Why am I getting the \"Fatal error: [] operator not supported for strings\" error when updating my database?
In web development, it's common to encounter errors when working with databases and arrays. One such error is "Fatal error: [] operator not supported for strings." This error occurs when an attempt is made to use the array push syntax on a variable that has not been properly declared as an array.
In the provided code, the following lines are responsible for fetching data from a database and assigning them to arrays:
<code class="php">$namesql1 = "SELECT name,date,text,date2 FROM table WHERE something= '$something'"; $nameresult1 = mysql_query($namesql1); while ($row = mysql_fetch_array($nameresult1, MYSQL_ASSOC)) { $name[] = $row['name']; $date[] = $row['date']; $text[] = $row['text']; $date2[] = $row['date2 ']; }</code>
Here, the variables $name, $date, $text, and $date2 are initialized as arrays and are used to store the corresponding data from the database.
The error in the code occurs in the following line:
<code class="php">$wrotesql = "UPDATE service_report SET name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')"";</code>
In this line, an attempt is made to use the array push syntax $text[$nro] and $date2[$nro] to update the $text and $date2 columns in the database. However, this syntax is only valid for arrays, and the $text and $date2 variables have been initialized as strings. As a result, the error "Fatal error: [] operator not supported for strings" is triggered.
To resolve this error, you need to ensure that the $text and $date2 variables are declared as arrays before using the array push syntax. One way to do this is to change the variable assignments in the while loop to the following:
<code class="php">$text = array(); $date2 = array();</code>
With these changes, the $text and $date2 variables will be initialized as arrays, and you can use the array push syntax to modify their contents.
By addressing the incorrect array initialization, the "Fatal error: [] operator not supported for strings" will be resolved, and you can successfully update the database information as intended.
The above is the detailed content of Why am I getting the \"Fatal error: [] operator not supported for strings\" error when updating my database?. For more information, please follow other related articles on the PHP Chinese website!