Veralteter Aufruf -> function wpdb :: escape ()

Ich bekomme viele Fehler in meinem Debug-Log:

Veralteter Aufruf -> function wpdb :: escape () – Verwenden Sie stattdessen wpdb :: prepare () oder esc_sql ()

Anstatt das Debug-Log auszuschalten, versuche ich das “Plugin bei Fehler” zu “reparieren”. Die folgenden Zeilen verwenden wpdb::escape() :

 $wpdb->query(sprintf( "UPDATE %s SET %s = '%s' WHERE ID = %d" , $wpdb->posts , $wpdb->escape($key) , $wpdb->escape($visibility) , $post_id )); 

Solutions Collecting From Web of "Veralteter Aufruf -> function wpdb :: escape ()"

prepare funktioniert etwas anders als escape, da es auf ganzen Strings funktioniert und auch das Quoting verwaltet.

 $pat = "UPDATE {$wpdb->posts} SET %s = %s WHERE ID = %d"; $qry = $wpdb->prepare( $pat, $key, $visibility, $post_id ); $wpdb->query($qry); 

Sie müssen den Tabellennamen überhaupt nicht austauschen, und mit prepare Sie ihn nicht austauschen, da der Tabellenname in Anführungszeichen gesetzt wird und die SQL-statement bricht.