: 현재 행의 모든 필드 데이터를 반환하면 결과는 숫자 인덱스 어레이입니다. 여기서 각 값은 열의 내용입니다. 배열의 첨자는 0에서 시작하여 쿼리 결과 세트의 열 인덱스를 나타냅니다.
mysql_fetch_assoc () : 현재 행의 모든 필드 데이터를 반환하고 결과는 어레이의 키가 열 이름이고 값은 열의 내용입니다. mysql_fetch_row () 와 달리 mysql_fetch_assoc ()는 숫자 인덱스 대신 열 이름을 사용하여 필드를 식별합니다.
mysql_fetch_row () 예 :
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name, age FROM users"</span></span><span>);
</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_fetch_row</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; </span><span><span class="hljs-comment">// 산출 id</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]; </span><span><span class="hljs-comment">// 산출 name</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>]; </span><span><span class="hljs-comment">// 산출 age</span></span><span>
</span></span>
이 예에서 MySQL_Fetch_row ()는 숫자 인덱스 배열을 반환하고 배열의 첨자는 열의 인덱스 (0, 1, 2 ...)입니다. 열 데이터에 액세스하려면 열 데이터에 액세스 할 수 있습니다.
mysql_fetch_assoc () 예 :
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name, age FROM users"</span></span><span>);
</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_fetch_assoc</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>]; </span><span><span class="hljs-comment">// 산출 id</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>]; </span><span><span class="hljs-comment">// 산출 name</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>]; </span><span><span class="hljs-comment">// 산출 age</span></span><span>
</span></span>
mysql_fetch_row () 와 달리 mysql_fetch_assoc ()는 연관 배열을 반환하고 배열의 키는 열 이름입니다. 열 이름을 통해 데이터에 액세스 할 수 있으므로 코드를 쉽게 이해하고 유지 관리 할 수 있습니다.
성능 관점에서 MySQL_Fetch_row ()는 mysql_fetch_assoc () 보다 약간 낫습니다. 숫자 인덱스 배열을 반환하기 때문에 mysql_fetch_assoc ()는 열 이름의 문자열 매핑을 처리하고 약간의 추가 오버 헤드를 추가해야합니다. 따라서 극한의 성능 요구 사항에서 MySQL_Fetch_row ()가 더 적절할 수 있습니다.
그러나 대부분의 경우 성능 차이는 중요하지 않습니다. 특히 차이가 눈에 띄지 않는 대부분의 응용 분야에서는 성능 차이가 중요하지 않습니다.
mysql_fetch_row ()는 성능에 약간의 이점이 있지만 mysql_fetch_assoc ()는 더 나은 코드 가독성을 제공합니다. 숫자 인덱스 대신 열 이름을 사용하면 액세스 오류를 피할 수 있으며 코드를 더 관리 할 수 있습니다.
예를 들어, 쿼리 결과 열이 변경되면 (예 : 열 순서 조정)가 열 순서 변경의 영향을받지 않기 때문에 mysql_fetch_assoc ()를 사용하면 더 강력하게 나타납니다. mysql_fetch_row () 가 숫자 인덱스에 의존하면 불필요한 오류가 발생할 수 있습니다.
mysql_fetch_row ()를 사용하는 시나리오 :
성능이 매우 높고 쿼리 결과의 열 수가 매우 크므로 메모리 오버 헤드를 최소화하려는 경우.
쿼리의 열 수가 고정되어 변경하기 쉽지 않은 경우 코드 개발자는 열 인덱스를 명확하게 이해합니다.
mysql_fetch_assoc ()를 사용하는 시나리오 :
코드를 읽고 유지하기가 더 쉬워지기를 원하는 경우, 특히 열 순서가 변경 될 때.
열 이름을 사용하여 열의 순서 또는 위치의 변경으로 인한 오류를 피하기 위해 데이터에 액세스해야합니다.
쿼리 결과 세트에 열이 적고 성능 차이가 분명하지 않은 경우.
mysql_fetch_row () 및 mysql_fetch_assoc () 는 모두 mysql 쿼리 결과 세트에서 데이터 행을 추출하는 데 사용되지만 수익의 형식, 성능 및 가독성이 다릅니다. 사용할 것을 선택할 때 특정 응용 프로그램 시나리오를 기반으로 결정해야합니다.
성능이 선호되고 데이터 구조가 비교적 간단한 경우 mysql_fetch_row ()를 사용하는 것이 적합한 선택입니다.
코드의 가독성과 유지 관리에 더 많은주의를 기울이면, 특히 여러 열이 관련되어 있고 열 이름이 변경 될 수있는 경우 mysql_fetch_assoc ()를 사용하는 것이 더 편리합니다.
현대적인 PHP 개발에서는 MySQL 확장이 더 이상 사용되지 않았기 때문에 MySQL 확장 대신 MySQLI 또는 PDO를 사용하는 것이 좋습니다. 어떤 확장을 사용하든이 두 기능의 차이를 이해하면 데이터베이스 작업을보다 효율적으로 수행하는 데 도움이 될 수 있습니다.