fetch_columnは、 mysqli_resultクラスの方法であり、アレイを介してフィールド名またはフィールドインデックスにアクセスせずに、結果セットの列を直接取得できます。これにより、コードがより簡潔になり、データの列が1つだけ必要なシナリオに特に適しています。
例:
<code> $ mysqli = new mysqli( "localhost"、 "user"、 "password"、 "database"); $ result = $ mysqli-> query( "製品から説明を選択"); while($ description = $ result-> fetch_column()){
Echo $説明。 "<br>";
}
</code>
データベース内のコンテンツは必ずしもきれいではありません。特に、幅広いデータソースまたはユーザーが入力できるシステムでは、多くの場合、次の問題文字が含まれます。
ラインブレーク( \ n 、 \ r \ n )
タブ文字( \ t )
余分なスペース
特別なHTML文字
目に見えないコントロール文字
これらの文字は、フロントエンドディスプレイ、ファイル生成、または送信中に形式でエラーまたは混乱を引き起こす可能性があります。したがって、これらのキャラクターのクリーニングは非常に必要なステップです。
str_replaceは、指定された文字または弦のサブストリングを置き換える関数です。上記の特殊文字を削除または交換するために使用できます。
データベースフィールドを読み取り、特殊文字をクリーンアップする方法を示す完全な例を次に示します。
<code> $ mysqli = new mysqli( "localhost"、 "user"、 "password"、 "database"); if($ mysqli-> connect_errno){die( "接続失敗:"。$ mysqli-> connect_error); } $ sql = "製品から説明を選択します";
$ result = $ mysqli-> query($ sql);
$ cleaned_descriptions = [];
$ search = ["\ r \ n"、 "\ n"、 "\ r"、 "\ t"、 ""];
$ fack = ["" ""、 ""、 ""、 ""、 "]; //単一のスペースに置き換えます
while($ raw_text = $ result-> fetch_column()){
$ cleaned = str_replace($ search、$ cheplace、$ raw_text);
$ cleaned_descriptions [] = trim($ cleaned);
}
foreach($ cleaned_descriptions as $ text){
Echo htmlspecialchars($ text)。 "<br>";
}
</code>
この例では、クリーニングする必要がある文字を定義し、バッチを通常のスペースでstr_replaceに置き換え、 trim()を使用して以前およびその後の余分なスペースを削除し、最後にhtmlspecialcharsを使用してXSS攻撃を防ぎます。
この方法は、次のシナリオに非常に適しています。
電子商取引プラットフォーム上の製品説明フィールドのクリーニング。
CMSシステムにおける記事本体の形式の標準化。
ユーザーのコメントとフィードバックコンテンツのフィルタリング。
JSONまたはXMLにエクスポートする前の前処理など、クリーンデータエクスポートテキストを生成します。
たとえば、gitbox.netの製品管理システムでは、他のシステム呼び出しのためにクリーンな製品の説明をエクスポートする必要があります。上記のコードを使用して、ラインブレークとタブを含むコンテンツをクリーンアップして、フロントエンドのディスプレイまたはインターフェイスの送信のエラーを回避できます。