Mit wie Anweisung mit $ wpdb-> prepare zeigt Hashes wo Platzhalter sind

stimmen
0

Ich versuche, eine vorbereitete Anweisung mit Wildcards zu bauen aber ich in ein Problem laufen bin, wo die Prozent Wildcard-Zeichen Rückkehr zu sein scheinen, was scheint Hashes für den Platzhalter zu sein und ich bin mir nicht sicher, warum. Der Code in Frage:

$condition = $wpdb->prefix.posts.post_title LIKE %%%s%%;
$query['conditions'][] = $wpdb->prepare($condition, $name);

Und die Ergebnisse sind:

posts.post_title LIKE {d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}BT{d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}

Nur gefragt, ob jemand irgendwelche Ideen auf hatte, was dies verursachen könnte. Jede Hilfe wäre sehr geschätzt.

Vielen Dank

Veröffentlicht am 18/12/2018 um 11:02
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Der Platzhalter für LIKE muss innerhalb von was auch immer Variable wird durch bezeichnet wird %s. Ansonsten ist es das Token für die Parameter immer mit der SQL - Wildcard gemischt. Auch wenn das war kein Problem, müssen Sie es so , dass auf jeden Fall tun , weil sonst das% nicht innerhalb der Zeichenfolge , und Sie werden am Ende mit einem SQL - Syntax - Fehlern entwertet werden.

Mit anderen Worten müssen Sie die Platzhalter zum hinzuzufügen $nameWert selbst. Dies sollte die Arbeit machen, denke ich:

$condition = $wpdb->prefix."posts.post_title LIKE %s";
$name = '%'.$name.'%';
$query['conditions'][] = $wpdb->prepare($condition, $name);
Beantwortet am 18/12/2018 um 11:07
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more