Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden Sie die Anweisung like mit $wpdb->prepare und zeigen Sie Hashes an, wo sich Platzhalterzeichen befinden

Machen Sie sich keine Sorgen um die Hashes, sie werden in $wpdb durch % ersetzt, wenn Sie Ihre Abfrage ausführen.

Diese Hashes wurden mit WP v4.8.3 als Fix für SQL-Injection-Angriffe eingeführt.

Sie sind Platzhalter für das %-Zeichen. Es hindert jemanden daran, etwas anderes als %s, %d und %f zu verwenden. Wenn es ein anderes % als diese genehmigten Verwendungen gibt, wird % durch einen Hash ersetzt. Dieser Hash wird wieder durch % ersetzt, wenn $wpdb die Abfrage ausführt.

Wenn Sie die Hashes selbst entfernen möchten, können Sie remove_placeholder_escape() verwenden , etwa so:

$query['conditions'][] = $wpdb->remove_placeholder_escape($wpdb->prepare($condition, $name));