SQL 쿼리의 실행 상태를 모니터링하는 것은 PHP 응용 프로그램을 개발할 때 성능을 디버깅하고 최적화하는 데 중요합니다. MySQLI Extension은 MySQL 데이터베이스와 상호 작용하는 여러 가지 방법을 제공합니다. 여기서 MySQLI :: $ Info 기능은 마지막으로 실행 된 SQL 쿼리에 대한 자세한 정보를 얻는 강력한 도구입니다. 이 기사는 mysqli :: $ info 함수를 사용하여 실시간으로 SQL 실행 상태를 모니터링하는 방법을 소개합니다.
mysqli :: $ info는 특히 쿼리가 실행 된 후 데이터베이스와 상호 작용하는 것에 대한 자세한 정보를 제공하는 PHP MySQLI 클래스의 속성입니다. 이 속성을 통해 개발자는 영향을받는 행의 수, 경고 정보 등을 포함하여 SQL 문 실행 상태를 얻을 수 있습니다.
이 속성은 주로 다음 시나리오에서 사용됩니다.
SQL 쿼리 실행 후 통계 정보를 얻습니다
SQL 실행 중에 경고가 있는지 확인하십시오
영향을받는 행의 수를 얻으십시오 (예 : 업데이트 또는 삭제 작업 후)
mysqli :: $ info는 마지막 SQL 문을 실행하는 것과 관련된 메시지를 반환하는 읽기 전용 속성입니다. 기본 사용량은 다음과 같습니다.
<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">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</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">"UPDATE users SET status = 'active' WHERE last_login > '2025-01-01'"</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__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>) === </span><span><span class="hljs-literal">TRUE</span></span><span>) {
</span><span><span class="hljs-comment">// 산출SQL구현하다状态</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQL구현하다成功: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->info;
} </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">"SQL구현하다失败: "</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-> info를 통해 SQL 실행의 세부 정보를 얻을 수 있습니다. SQL이 성공적으로 실행되면 영향을받는 행의 수에 대한 정보를 반환합니다. SQL 실행이 실패하면 오류 메시지가 출력됩니다.
mysqli :: $ info 의 반환 값은 일반적으로 다음을 포함합니다.
영향을받는 행 수 : 예를 들어 삽입 , 업데이트 , 삭제 등과 같은 작업의 경우 MySQLI :: $ info가 영향을받는 행의 수를 반환합니다.
경고 수 : SQL을 실행하는 동안 경고가 발생하면 반환 된 컨텐츠에 경고 수가 표시 될 수 있습니다.
기타 쿼리 정보 : 특정 쿼리의 경우 MySQLI :: $ info 도 다른 실행 정보를 반환 할 수도 있습니다.
예를 들어 :
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET status = 'active' WHERE last_login > '2025-01-01'"</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$mysqli</span></span><span>->info; </span><span><span class="hljs-comment">// 반품:Records updated: 50</span></span><span>
</span></span>이 예에서는 mysqli :: $ info가 50 개의 레코드가 업데이트되었음을 나타내는 메시지를 반환합니다.
SQL 실행 상태의 실시간 모니터링을 실현하기 위해 MySQLI :: $ info를 통해 쿼리 정보를 지속적으로 얻고 각 SQL 작업이 실행 된 후 확인할 수 있습니다. 이 방법은 개발 단계에서 디버깅 또는 성능 분석에 특히 적합합니다.
예를 들어, 배치에서 여러 SQL 쿼리를 실행할 때 각 쿼리 후 MySQLI :: $ info 의 반환 값을 기록하여 각 작업의 효과를 모니터링 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$queries</span></span><span> = [
</span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]')"</span></span><span>,
</span><span><span class="hljs-string">"UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01'"</span></span><span>,
</span><span><span class="hljs-string">"DELETE FROM users WHERE id = 101"</span></span><span>
];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$queries</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$query</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__">query</span></span><span>(</span><span><span class="hljs-variable">$query</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>->info . </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-variable">$mysqli</span></span><span>->error . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서 쿼리를 실행할 때마다 $ mysqli-> info를 통해 현재 SQL 문의 실행 상태를 즉시 출력합니다. 이는 배치 운영 또는 복잡한 트랜잭션 처리에 매우 유용하며 실행 결과를 실시간으로 모니터링하는 데 도움이 될 수 있습니다.
마지막 SQL 문에만 적용 가능 : mysqli :: $ info는 실행 된 마지막 SQL 문에 대한 피드백 만 제공 할 수 있습니다. 동일한 스크립트에서 여러 쿼리를 실행하면 마지막 쿼리의 실행 정보 만 반환합니다.
데이터베이스 연결 문제 : 데이터베이스 연결에 문제가있는 경우 MySQLI :: $ info가 유효한 정보를 반환하지 않을 수 있으므로 사용시 데이터베이스 연결이 정상인지 확인해야합니다.
오류 및 경고 : mysqli :: $ info는 주로 실행 개요를 얻는 데 사용됩니다. 자세한 오류 정보가 필요한 경우 mysqli :: $ 오류 속성을 사용해야합니다.
mysqli :: $ info는 개발자가 SQL 쿼리의 실행 상태를 실시간으로 모니터링하는 데 도움이되는 매우 실용적인 속성입니다. 이 속성을 사용하면 SQL 작업을 수행 한 후 세부 실행 정보를 얻으므로 개발자가 코드를 더 잘 디버그하고 최적화 할 수 있습니다. 특히 복잡한 데이터베이스 작업 및 배치 쿼리에서 MySQLI :: $ Info는 개발자가 해당 조정을 수행 할 수 있도록 주요 피드백 정보를 제공 할 수 있습니다.
빈번한 SQL 작업이 필요한 PHP 응용 프로그램을 구축하는 경우 MySQLI :: $ 정보 와 결합 된 실시간 모니터링은 디버깅 및 최적화 효율성을 크게 향상시킵니다.