Ich möchte eine LIKE% text% -Anweisung verwenden, während ich weiterhin die WordPress $ wpdb-Klasse verwende, um Eingaben zu bereinigen und vorzubereiten.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
Ich habe so etwas ohne Erfolg versucht:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Wie bereiten Sie eine% LIKE% SQL-Anweisung mit der WordPress-Datenbankklasse richtig vor?
{}
?$wpdb
und ignoriert->prefix
.$wpdb->base_prefixmy_table
und versuchen,base_prefixmy_table
Eigentum nachzuschlagen, anstatt nurbase_prefix
.Sie müssen Prozent verdoppeln, damit sie nicht wie Fragmentmarkierungen behandelt werden, indem Sie
wpdb->prepare()
:PS nicht sicher, ob dies der beste / einzige Weg ist, es zu tun.
quelle
wpdb::prepare
sie nur für ein%s
Zeichen ohne vorangestelltes%
Zeichen hinzugefügt werden . Der letzte Teil Ihrer Anfrage sollte seinWHERE column_2 LIKE '%%%s%%'
.Dies ist eine Möglichkeit, die ich überprüft habe und die funktioniert:
Ersetzen Sie die Variablen entsprechend Ihren Anforderungen.
quelle
%
Zeichen entkommen (mitlike_escape()
. Siehe: codex.wordpress.org/Class_Reference/…