<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>prepare()メソッドを使用して、通常はプレースホルダー( ? )を含むSQLクエリステートメントを準備して、SQL注入を防止します。
</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