MySQL에 배열 저장: 대체 접근 방식
단일 MySQL 필드에 데이터 배열을 저장하는 방법에 대한 질문은 오랫동안 수수께끼였습니다. 개발자. serialize() 및 unserialize()는 솔루션을 제공할 수 있지만 쿼리 가능성을 희생합니다.
관계형 데이터 검사
MySQL에 배열을 저장하는 가장 좋은 접근 방식은 관계형 데이터를 수정하고 이에 따라 스키마를 수정합니다. 배열을 단일 필드에 집어넣는 대신 배열의 내용을 수용할 수 있는 테이블을 만드는 것이 좋습니다.
테이블 구조 예
예를 들어, 중첩된 배열의 배열이 있습니다:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( '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) );
기록 삽입 및 검색
테이블에 배열을 저장하려면 삽입 쿼리를 사용할 수 있습니다.
foreach ($t as $k => $v) { $query = "INSERT INTO test (id," . implode(',', array_keys($v)) . ") VALUES ($k," . implode(',', $v) . ")"; $r = mysql_query($query,$c); }
기록을 검색하려면 선택 쿼리를 사용할 수 있습니다.
function getTest() { $ret = array(); $c = connect(); $query = 'SELECT * FROM test'; $r = mysql_query($query, $c); while ($o = mysql_fetch_array($r, MYSQL_ASSOC)) { $ret[array_shift($o)] = $o; } mysql_close($c); return $ret; }
이 접근 방식 데이터베이스 내의 배열 데이터를 쉽게 쿼리하고 조작할 수 있습니다.
위 내용은 MySQL에서 배열 데이터를 효율적으로 저장하고 쿼리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!