PHP에서 MySQLI Extension은 MySQL 데이터베이스에서 작동 할 때 가장 일반적으로 사용되는 도구 중 하나입니다. MySQLI Extension을 사용하면 데이터베이스에 쉽게 연결하고 쿼리를 실행하며 쿼리 결과를 얻을 수 있습니다. 이 기사는 real_query 함수와 mysqli_fetch_assoc 함수를 결합하여 쿼리 결과를 효율적으로 얻고 프로세스하는 방법을 소개합니다.
이 두 기능을 결합하는 방법을 이해하기 전에 기본 기능을 이해해야합니다.
Real_Query : 이것은 SQL 쿼리를 실행하기 위해 MySQLI 확장자가 제공하는 함수입니다. 쿼리 함수와 달리 Real_Query는 SQL 명령을 데이터베이스에 직접 보내어 처리합니다. 복잡한 쿼리를 실행 해야하는 경우 Real_Query를 사용하면 더 많은 제어와 유연성이 제공됩니다.
mysqli_fetch_assoc : 이것은 쿼리 결과에서 데이터 행을 가져 와서 연관 배열로 반환하는 매우 일반적으로 사용되는 MySQLI 함수입니다. 각 필드 이름은 배열의 키로 사용되며 필드 이름을 통해 해당 값에 액세스 할 수 있습니다.
먼저 데이터베이스 연결을 생성하고 Real_Query를 사용하여 SQL 쿼리를 실행하려고합니다. Real_Query는 결과를 직접 반환하지 않지만 mysqli_use_result 또는 mysqli_store_result를 통해 쿼리 결과 세트를 검색합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 데이터베이스 연결을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'root'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-string">'test_db'</span></span><span>);
</span><span><span class="hljs-comment">// 연결이 성공했는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'연결이 실패했습니다: '</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// 정의SQL쿼리 문</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, age FROM users"</span></span><span>;
</span><span><span class="hljs-comment">// 쿼리를 실행하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">real_query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>)) {
</span><span><span class="hljs-comment">// 쿼리 결과를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">use_result</span></span><span>(); </span><span><span class="hljs-comment">// 쿼리 결과를 사용하십시오</span></span><span>
</span><span><span class="hljs-comment">// 쿼리가 성공했는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
</span><span><span class="hljs-comment">// 결과를 통한 반복</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-comment">// 각 데이터 행을 처리합니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: "</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-string">" | Name: "</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-string">" | Age: "</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-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"쿼리 결과는 비어 있습니다"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"쿼리가 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
}
</span><span><span class="hljs-comment">// 데이터베이스 연결을 닫습니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이 코드에서는 먼저 MySQLI 객체를 사용하여 MySQL 데이터베이스에 연결됩니다. 연결이 성공하면 Real_Query 메소드를 사용하여 SQL 쿼리 문을 실행합니다. 그런 다음 USE_RESULT를 통해 쿼리 결과를 설정하고 mySQLI_FETCH_ASSOC 함수를 통해 결과 행을 행으로 얻습니다.
mysqli_fetch_assoc 은 결과 세트의 각 행을 연관 배열로 반환하는 매우 강력한 기능입니다. 위의 예에서 $ row 는 $ row [ 'id'] , $ row [ 'name'] 및 $ row [ 'age'] 와 같은 필드 이름으로 각 행의 데이터에 액세스 할 수있는 배열입니다.
이 접근법은 MySQLI_Fetch_row (숫자 인덱스 배열 반환)를 사용하는 것보다 읽기 쉽습니다. 각 필드의 위치를 기억하지 않고 필드 이름으로 데이터에 직접 액세스 할 수 있기 때문입니다.
유연성 : Real_Query는 보다 복잡한 쿼리를 처리 할 수 있으며, 이는 대규모 응용 프로그램 또는 복잡한 쿼리 작업을보다 제어 할 수 있습니다. 간단한 선택 쿼리뿐만 아니라 Real_Query 를 통해 직접 SQL 명령을 직접 실행할 수 있습니다.
효율성 : 쿼리 결과를 처리 할 때 MySQLI_Fetch_Assoc 에 의해 반환 된 연관 배열은 더 읽기 쉽고 직관적이며 데이터가 효율적이고 명확하게 처리되는 시나리오에 적합합니다.
오류 처리 : Real_Query는 더 많은 오류 정보 및 진단 정보를 제공하여 개발자가 문제를 찾는 데 도움이됩니다. mysqli_fetch_assoc은 결과 세트를 통과하는 프로세스를 단순화하고 인덱스를 수동으로 관리하는 문제를 피합니다.
Real_Query 와 MySqli_fetch_assoc를 결합하면 데이터베이스 쿼리 결과를 쉽게 얻고 처리 할 수 있습니다. Real_Query는 유연한 쿼리 실행 함수를 제공하는 반면 MySQLI_Fetch_Assoc은 결과 처리를보다 명확하고 직관적입니다. 이 두 가지의 사용을 마스터하면 PHP에서 데이터베이스 작업의 효율성과 가독성이 크게 향상됩니다.