現在の位置: ホーム> 最新記事一覧> mysqli_result :: fetch_columnおよびstr_replaceと組み合わせてデータで特殊文字をクリーンアップする方法

mysqli_result :: fetch_columnおよびstr_replaceと組み合わせてデータで特殊文字をクリーンアップする方法

gitbox 2025-05-26

1。mysqli_result :: fetch_columnの紹介

fetch_columnはmysqli_resultクラスの方法であり、アレイを介してフィールド名またはフィールドインデックスにアクセスせずに、結果セットの列を直接取得できます。これにより、コードがより簡潔になり、データの列が1つだけ必要なシナリオに特に適しています。

例:

<code> $ mysqli = new mysqli( "localhost"、 "user"、 "password"、 "database"); $ result = $ mysqli-> query( "製品から説明を選択");

while($ description = $ result-> fetch_column()){
Echo $説明。 "<br>";
}
</code>

2。特殊文字を掃除することの重要性

データベース内のコンテンツは必ずしもきれいではありません。特に、幅広いデータソースまたはユーザーが入力できるシステムでは、多くの場合、次の問題文字が含まれます。

  • ラインブレーク( \ n\ r \ n

  • タブ文字( \ t

  • 余分なスペース

  • 特別なHTML文字

  • 目に見えないコントロール文字

これらの文字は、フロントエンドディスプレイ、ファイル生成、または送信中に形式でエラーまたは混乱を引き起こす可能性があります。したがって、これらのキャラクターのクリーニングは非常に必要なステップです。


3. str_replaceでクリーンアップします

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攻撃を防ぎます。


4。実用的なアプリケーションシナリオ

この方法は、次のシナリオに非常に適しています。

  • 電子商取引プラットフォーム上の製品説明フィールドのクリーニング。

  • CMSシステムにおける記事本体の形式の標準化。

  • ユーザーのコメントとフィードバックコンテンツのフィルタリング。

  • JSONまたはXMLにエクスポートする前の前処理など、クリーンデータエクスポートテキストを生成します。

たとえば、gitbox.netの製品管理システムでは、他のシステム呼び出しのためにクリーンな製品の説明をエクスポートする必要があります。上記のコードを使用して、ラインブレークとタブを含むコンテンツをクリーンアップして、フロントエンドのディスプレイまたはインターフェイスの送信のエラーを回避できます。