0
エスケープ文字列に同じ値を複数回挿入することはできますか?すなわちSQL文字列エスケープ質問
$wpdb->prepare("SELECT * FROM table WHERE (column1 = %s || column2 = %s || column3 = %s) AND this = $s", $search_terms,$that");
もしそうでなければ、誰でも条件作成者の良い選択肢がありますか? SQLは、選択されたテーブルに対して複数回実行されます。いくつかの表には他の列よりも多くの列が検索されるため、条件作成ツールを作成しました。しかし、今私はSQLインジェクションを防ぐために値をエスケープしようとしています。
$conditions = "";
$query_seperator = " || ";
$i = 0;
foreach($table['fields'] as $field){
if ($i < ($field_count-1)){
$conditions = $conditions . $field . " LIKE %s" . $query_seperator;
} else {
$conditions = $conditions . $field . " LIKE %s";
}
$i++;
}
$wpdb->prepare("SELECT * FROM table WHERE ($conditions) AND this = $s", $search_terms,$that");
と同等であると考えられます。どこで検索文字列のみ。検索列はありません。しかし、応答ありがとう。 – madphp
試しましたか?それは私のサーバー上で完全にうまく動作するからです。 'IN()'は複数の 'OR'文のショートカットに過ぎず、MySQLはクエリをコンパイルする前にこのフォームに書き換えます。 – Mchl
私は試してみました。確かに私はもう一度やり直すつもりです。 – madphp