데이터베이스를 업데이트할 때 \'치명적인 오류: [] 연산자는 문자열에 지원되지 않습니다\' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 08:05:03
원래의
275명이 탐색했습니다.

Why am I getting the

"치명적인 오류: [] 문자열에 지원되지 않는 연산자" 문제 이해 및 해결

웹 개발에서는 다음과 같은 일이 일반적입니다. 데이터베이스 및 배열 작업 시 오류가 발생합니다. 이러한 오류 중 하나는 "치명적인 오류: [] 연산자가 문자열에 지원되지 않습니다."입니다. 이 오류는 배열로 제대로 선언되지 않은 변수에 배열 푸시 구문을 사용하려고 할 때 발생합니다.

코드 분석

제공된 코드에서 다음 줄은 데이터베이스에서 데이터를 가져와 배열에 할당하는 역할을 합니다.

<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')&quot;";</code>
로그인 후 복사

이 줄에서는 배열 푸시 구문 $text[$nro] 및 $date2[$nro]를 사용하여 데이터베이스의 $text 및 $date2 열을 업데이트하려고 시도합니다. 그러나 이 구문은 배열에만 유효하며 $text 및 $date2 변수는 문자열로 초기화되었습니다. 결과적으로 "치명적인 오류: [] 연산자는 문자열에 지원되지 않습니다"라는 오류가 발생합니다.

코드 재구성

이 오류를 해결하려면 배열 푸시 구문을 사용하기 전에 $text 및 $date2 변수가 배열로 선언되었는지 확인해야 합니다. 이를 수행하는 한 가지 방법은 while 루프의 변수 할당을 다음과 같이 변경하는 것입니다.

<code class="php">$text = array();
$date2 = array();</code>
로그인 후 복사

이러한 변경으로 $text 및 $date2 변수는 배열로 초기화되며 배열 푸시 구문을 사용하여 내용을 수정하세요.

잘못된 배열 초기화를 해결하면 "치명적인 오류: [] 연산자가 문자열에 지원되지 않습니다."가 해결되고 의도한 대로 데이터베이스 정보를 성공적으로 업데이트할 수 있습니다.

위 내용은 데이터베이스를 업데이트할 때 \'치명적인 오류: [] 연산자는 문자열에 지원되지 않습니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿