웹 개발에서는 다음과 같은 일이 일반적입니다. 데이터베이스 및 배열 작업 시 오류가 발생합니다. 이러한 오류 중 하나는 "치명적인 오류: [] 연산자가 문자열에 지원되지 않습니다."입니다. 이 오류는 배열로 제대로 선언되지 않은 변수에 배열 푸시 구문을 사용하려고 할 때 발생합니다.
제공된 코드에서 다음 줄은 데이터베이스에서 데이터를 가져와 배열에 할당하는 역할을 합니다.
<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>
여기서 $name, $date, $text 및 $date2 변수는 다음과 같이 초기화됩니다. 배열이며 데이터베이스의 해당 데이터를 저장하는 데 사용됩니다.
코드의 오류는 다음 줄에서 발생합니다.
<code class="php">$wrotesql = "UPDATE service_report SET name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')"";</code>
이 줄에서는 배열 푸시 구문 $text[$nro] 및 $date2[$nro]를 사용하여 데이터베이스의 $text 및 $date2 열을 업데이트하려고 시도합니다. 그러나 이 구문은 배열에만 유효하며 $text 및 $date2 변수는 문자열로 초기화되었습니다. 결과적으로 "치명적인 오류: [] 연산자는 문자열에 지원되지 않습니다"라는 오류가 발생합니다.
이 오류를 해결하려면 배열 푸시 구문을 사용하기 전에 $text 및 $date2 변수가 배열로 선언되었는지 확인해야 합니다. 이를 수행하는 한 가지 방법은 while 루프의 변수 할당을 다음과 같이 변경하는 것입니다.
<code class="php">$text = array(); $date2 = array();</code>
이러한 변경으로 $text 및 $date2 변수는 배열로 초기화되며 배열 푸시 구문을 사용하여 내용을 수정하세요.
잘못된 배열 초기화를 해결하면 "치명적인 오류: [] 연산자가 문자열에 지원되지 않습니다."가 해결되고 의도한 대로 데이터베이스 정보를 성공적으로 업데이트할 수 있습니다.
위 내용은 데이터베이스를 업데이트할 때 \'치명적인 오류: [] 연산자는 문자열에 지원되지 않습니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!