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 중국어 웹사이트의 기타 관련 기사를 참조하세요!