MySQL 필드에서 PHP 배열을 어떻게 효과적으로 저장하고 검색합니까?

Patricia Arquette
풀어 주다: 2024-10-29 08:25:02
원래의
665명이 탐색했습니다.

How do you effectively store and retrieve a PHP array in a MySQL field?

MySQL에서 PHP 배열 저장 및 검색

질문:
어떻게 효과적으로 PHP 배열을 저장하고 검색할 수 있습니까? 단일 MySQL 내의 데이터 배열 필드?

답변:
어레이 데이터 저장:

단일 MySQL 필드에 배열을 저장하는 것은 권장되지 않습니다. 관계형 데이터 무결성. 배열 데이터를 수용하도록 스키마를 조정하는 것이 좋습니다.

직렬화 및 직렬화 해제 사용:

단일 필드에 배열을 저장해야 하는 경우 다음을 사용할 수 있습니다. serialize() 및 unserialize() 함수. 그러나 이 접근 방식은 저장된 배열에 대해 직접 쿼리를 수행하는 능력을 제한합니다.

JSON 인코딩 및 디코딩:

또는 json_encode() 및 json_decode 사용을 고려할 수 있습니다. () 배열 데이터를 저장하고 검색합니다. 이 방법을 사용하면 JSON 형식의 데이터를 텍스트 필드에 저장하고 다시 배열 형식으로 변환할 수 있습니다.

관계형 스키마 수정의 예:

다음을 고려하세요. 배열:

$a = [
    1 => ['a' => 1, 'b' => 2, 'c' => 3],
    2 => ['a' => 1, 'b' => 2, 'c' => 3],
];
로그인 후 복사

이 배열을 관계형 데이터베이스에 저장하려면 다음을 사용하여 테이블을 생성할 수 있습니다. 구조:

CREATE TABLE test (
  id INTEGER UNSIGNED NOT NULL,
  a INTEGER UNSIGNED NOT NULL,
  b INTEGER UNSIGNED NOT NULL,
  c INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (id)
);
로그인 후 복사

직렬화 및 직렬화 해제의 예:

<code class="php">function saveArray($array)
{
    $serializedArray = serialize($array);
    $query = "INSERT INTO test_table (data) VALUES ('$serializedArray')";
    // Execute the query and save the array
}

function getArray()
{
    $query = "SELECT data FROM test_table";
    // Execute the query
    $serializedArray = mysql_fetch_row($result)[0];
    $unserializedArray = unserialize($serializedArray);
    return $unserializedArray;
}</code>
로그인 후 복사

JSON 인코딩 및 디코딩의 예:

<code class="php">function saveArrayJSON($array)
{
    $jsonEncodedArray = json_encode($array);
    $query = "INSERT INTO test_table (data) VALUES ('$jsonEncodedArray')";
    // Execute the query and save the array
}

function getArrayJSON()
{
    $query = "SELECT data FROM test_table";
    // Execute the query
    $jsonEncodedArray = mysql_fetch_row($result)[0];
    $decodedArray = json_decode($jsonEncodedArray, true);
    return $decodedArray;
}</code>
로그인 후 복사

위 내용은 MySQL 필드에서 PHP 배열을 어떻게 효과적으로 저장하고 검색합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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