>source

MySQL 테이블에 JSON 열 (json_col이라고 함)이 있습니다.

{ 'a': 9, 'b': 8, 'c': 7}

각 키와 값이있는 "json_col"열을 선택하여 PHP에서 처리 할 수 ​​있도록 array ()로 반환합니다.

어떻게하나요?

JSON_EXTRACT () 시도했지만 json 요소를 지정해야하며 해당 값만 반환합니다.

다음은 "내 노력"입니다.

 $query_string = '
    SELECT JSON_EXTRACT( json_col, "$.a" )
    FROM settings
    WHERE id = "4"
    LIMIT 1
  ';
  $result = mysqli_query( $GLOBALS['db_link'], $query_string ) or die( mysqli_error( $GLOBALS['db_link'] ) );
  $row = mysqli_fetch_row( $result );
  mysqli_free_result( $result );

$row [0]을 에코하면 "a"의 값이 9입니다!


  • 답변 # 1

    쿼리를 변경하여 json을 선택하십시오.

    $query_string = '
        SELECT json_col
        FROM settings
        WHERE id = "4"
        LIMIT 1
    ';
    
    

    이전과 같이 쿼리를 실행합니다.

    $result = mysqli_query( $GLOBALS['db_link'], $query_string ) or die( mysqli_error( $GLOBALS['db_link'] ) );
    $row = mysqli_fetch_row( $result );
    
    

    그런 다음 json_decode를 사용하여 배열로 변환하십시오.

    $myArray = json_decode($row['json_col'], true);
    
    

    다음과 같이 값을 확인할 수 있습니다.

    echo "<pre>";
    print_r($myArray);
    echo "<pre>";
    
    

  • 이전 robotframework - 텍스트를 입력하거나 키를 누르거나 키 코드를 누를 수 없음
  • 다음 javascript - 애플리케이션 수준에서 Firebase 저장소 규칙 제어