sanitize_sql_orderby()


関数WordPresssanitize_sql_orderby()— SQLクエリ内のORDER BY句を安全にするために使用されます。

シンタックス

sanitize_sql_orderby( string $orderby );
  • $orderby (string) — ORDER BY句を含むSQLクエリの一部。

例 1: 単純なORDER BY句の検証

指定されたORDER BY句が有効かどうかを確認します。

<?php
$orderby = 'name ASC';
$sanitized = sanitize_sql_orderby( $orderby );
echo $sanitized;
?>

例 2: 無効なORDER BY句の削除

無効な句が指定された場合、nullが返されます。

<?php
$orderby = 'DROP TABLE users';
$sanitized = sanitize_sql_orderby( $orderby );
echo $sanitized; // nullが出力されます
?>

例 3: 複数列でのORDER BY句の使用

複数列を含むORDER BY句を検証します。

<?php
$orderby = 'name ASC, age DESC';
$sanitized = sanitize_sql_orderby( $orderby );
echo $sanitized;
?>

例 4: 動的SQLクエリの生成

ユーザー入力に基づいてORDER BY句を生成します。

<?php
$user_orderby = 'post_date DESC';
$sanitized_orderby = sanitize_sql_orderby( $user_orderby );
if ( $sanitized_orderby ) {
    $query = "SELECT * FROM wp_posts ORDER BY $sanitized_orderby";
    echo $query;
}
?>

例 5: デフォルトのORDER BY句の使用

無効な入力があった場合、デフォルトの句を使用します。

<?php
$user_orderby = 'INVALID CLAUSE';
$sanitized_orderby = sanitize_sql_orderby( $user_orderby );
$query = "SELECT * FROM wp_posts ORDER BY " . ( $sanitized_orderby ? $sanitized_orderby : 'post_title ASC' );
echo $query;
?>

注意点

  • この関数はSQLインジェクション攻撃を防ぐ目的で使用されます。
  • 常にユーザー入力を検証し、サニタイズすることを推奨します。

関連機能: