현재 위치: > 최신 기사 목록> 부드러움을 보장하기 위해 mysqli_stmt :: fetch를 실행하기 전에 어떤 준비가 필요합니까?

부드러움을 보장하기 위해 mysqli_stmt :: fetch를 실행하기 전에 어떤 준비가 필요합니까?

gitbox 2025-09-26
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 기사는 학습 및 참조 전용입니다,내용 PHP 가운데 mysqli_stmt::fetch 사용 준비</span></span><span>

</span><span><span class="hljs-comment">// -------------------------------------------</span></span><span>

</span><span><span class="hljs-meta">?></span></span><span>

<h1>실행 mysqli_stmt::</span><span><span class="hljs-variable constant_">fetch</span></span><span> 부드럽게 보장하기 위해 어떤 준비를 해야하는지?</h1>

<p>사용 중 <code>mysqli_stmt::</span><span><span class="hljs-variable constant_">fetch</span></span><span>

2. SQL 문을 준비하십시오

SQL 주입을 방지하기 위해 일반적으로 자리 표시 자 ( ? )를 포함하는 SQL 쿼리 문을 준비하려면 repay () 메소드를 사용하십시오.

 </span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"SELECT name, email FROM users WHERE id = ?"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$stmt</span></span><span>) {
    </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>->error);
}

3. 입력 매개 변수 바인드 (있는 경우)

쿼리 명령문에 자리 표시 자가 포함 된 경우 Bind_param ()을 사용하여 사용자 입력을 명령문에 바인딩해야합니다.

 </span><span><span class="hljs-variable">$userId</span></span><span> = </span><span><span class="hljs-number">5</span></span><span>;
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"i"</span></span><span>, </span><span><span class="hljs-variable">$userId</span></span><span>); </span><span><span class="hljs-comment">// "i" 정수 유형을 나타냅니다</span></span><span>

4. 실행 진술

execute () 메소드를 통해 SQL 문을 실행합니다.

 </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>()) {
    </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">$stmt</span></span><span>->error);
}

5. 결과 변수를 바인딩합니다

Fetch ()을 호출하기 전에 먼저 BIND_RESULT () 메소드를 통해 설정된 결과 열을 PHP 변수에 바인딩해야합니다.

 </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_result</span></span><span>(</span><span><span class="hljs-variable">$name</span></span><span>, </span><span><span class="hljs-variable">$email</span></span><span>);

6. 결과를 얻으려면 fetch () 를 호출하십시오

이제 fetch ()를 사용하여 데이터 행을 가져 와서 이전에 바인딩 변수로 결과를 자동으로 채울 수 있습니다.

 </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch</span></span><span>()) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이름: <span class="hljs-subst">$name</span></span></span><span>, 우편: </span><span><span class="hljs-subst">$email</span></span><span>&lt;br&gt;";
}

7. 자원 정리

마지막으로, 진술과 연결을 닫습니다.

 </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</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>();

요약

MySQLI_STMT :: Fetch 를 호출하기 전에 준비 단계에는 다음이 포함됩니다. 연결 작성, 명세서 준비, 입력 매개 변수 바인딩, 명세서 실행 및 결과 변수 바인딩이 포함됩니다. 각 단계는 중요하고 필수 불가능합니다. 이러한 준비가 완료된 후에 만 ​​결과를 부드럽게 반환 수 있습니다.