Mengapa saya mendapat ralat \'Fatal error: [] operator not supported for strings\' semasa mengemas kini pangkalan data saya?

Patricia Arquette
Lepaskan: 2024-11-03 08:05:03
asal
275 orang telah melayarinya

Why am I getting the

Memahami dan Menyelesaikan "Ralat Maut: [] Operator Tidak Disokong untuk Rentetan" Isu

Dalam pembangunan web, adalah perkara biasa untuk menghadapi ralat semasa bekerja dengan pangkalan data dan tatasusunan. Satu ralat sedemikian ialah "Ralat maut: [] operator tidak disokong untuk rentetan." Ralat ini berlaku apabila percubaan dibuat untuk menggunakan sintaks tolak tatasusunan pada pembolehubah yang belum diisytiharkan dengan betul sebagai tatasusunan.

Menganalisis Kod

Dalam kod yang disediakan, baris berikut bertanggungjawab untuk mengambil data daripada pangkalan data dan menetapkannya kepada tatasusunan:

<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>
Salin selepas log masuk

Di sini, pembolehubah $name, $date, $text, dan $date2 dimulakan sebagai tatasusunan dan digunakan untuk menyimpan data yang sepadan daripada pangkalan data.

Mengemas kini Maklumat Pangkalan Data

Ralat dalam kod berlaku dalam baris berikut:

<code class="php">$wrotesql = "UPDATE service_report SET  name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')&quot;";</code>
Salin selepas log masuk

Dalam baris ini, percubaan dibuat untuk menggunakan sintaks tolak tatasusunan $text[$nro] dan $date2[$nro] untuk mengemas kini lajur $text dan $date2 dalam pangkalan data. Walau bagaimanapun, sintaks ini hanya sah untuk tatasusunan dan pembolehubah $text dan $date2 telah dimulakan sebagai rentetan. Akibatnya, ralat "Ralat maut: [] operator tidak disokong untuk rentetan" dicetuskan.

Membina Semula Kod

Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa pembolehubah $text dan $date2 diisytiharkan sebagai tatasusunan sebelum menggunakan sintaks tolak tatasusunan. Satu cara untuk melakukan ini ialah menukar tugasan pembolehubah dalam gelung while kepada yang berikut:

<code class="php">$text = array();
$date2 = array();</code>
Salin selepas log masuk

Dengan perubahan ini, pembolehubah $text dan $date2 akan dimulakan sebagai tatasusunan dan anda boleh menggunakan sintaks tolak tatasusunan untuk mengubah suai kandungannya.

Dengan menangani pemulaan tatasusunan yang salah, "Ralat maut: [] operator tidak disokong untuk rentetan" akan diselesaikan dan anda boleh berjaya mengemas kini maklumat pangkalan data seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa saya mendapat ralat \'Fatal error: [] operator not supported for strings\' semasa mengemas kini pangkalan data saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan