<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>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);
}
쿼리 명령문에 자리 표시 자가 포함 된 경우 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>
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);
}
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>);
이제 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><br>";
}
마지막으로, 진술과 연결을 닫습니다.
</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 를 호출하기 전에 준비 단계에는 다음이 포함됩니다. 연결 작성, 명세서 준비, 입력 매개 변수 바인딩, 명세서 실행 및 결과 변수 바인딩이 포함됩니다. 각 단계는 중요하고 필수 불가능합니다. 이러한 준비가 완료된 후에 만 결과를 부드럽게 반환 할 수 있습니다.
관련 태그:
mysqli_stmt