• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

クラスリファレンス/wpdb/esc like

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「クラスリファレンス/wpdb/esc like」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

wpdb::esc_like() は wpdb クラス のメンバーです。

説明

渡された文字列 $text を、SQL クエリの LIKE 式で使えるように無害化します。

注意: 結果の文字列は続けて $wpdb->prepare() または esc_sql() で SQL エスケープしなければなりません。文字列を正しく、かつ安全に slashing するために、これは $wpdb->esc_like() の使用後に行う必要があります。

使い方

<?php $like = $wpdb->esc_like( $text ); ?>

パラメーター

$text
文字列) (必須) SQL クエリの LIKE 引数の部分。
初期値: なし

戻り値

(文字列) 
SQL クエリの LIKE 引数として適切なエスケープされた値。

用例

スパム判定されたコメントの中に疑わしいリンクがあるか調べます。

// 疑わしいリンクを解析してパーツに分解。
$url = parse_url( $suspicious_link );

// "http://" と URL パラメータを削除。
if ( isset( $url['path'] ) ) {
	$link = $url['host'] . $url['path'];
} else {
	$link = $url['host'];
}

global $wpdb;

// まず、LIKE 文で使えるようにリンクをエスケープ。
$link = $wpdb->esc_like( $link );

// コメントテキスト内を検索するのでワイルドカードを付加。
$link = '%' . $link . '%';

// 文字列入力のプレースホルダーを含む SQL 文を作る。
$sql = 	"
	SELECT COUNT(*)
	FROM $wpdb->comments 
	WHERE (comment_content LIKE %s OR comment_author_url LIKE %s)
		AND comment_approved = 'spam' 
	";

// SQL 文を prepare に通し、安全のために文字列入力をエスケープする。
$sql = $wpdb->prepare( $sql, $link, $link );

// コメントテキストまたはコメント作成者の URL がこのリンクを含む場合、そのコメントをスパムと見なす。
$matching_comments = $wpdb->get_var( $sql );

echo $matching_comments . ' 個のスパムコメントがこのリンクを含んでいます。';

参考

% (パーセント) と _ (下線) と \ (バックスラッシュ) の3種類をエスケープします。これらは LIKE 引数において特別な意味を持つからです。

変更履歴

ソースファイル

wpdb::esc_like()wp-includes/wp-db.php にあります。

関連項目

入出力値のサニタイズについて詳しくは データ検証ページをご覧ください。



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Class_Reference/wpdb/esc_like最新版との差分