$ wpdb-> prepare () Warnung in WordPress 3.5

Ich erhalte diese Warnung, wenn ich versuche, eine databaseabfrage auszuführen:

Warnung: Fehlendes Argument 2 für wpdb :: prepare ()

Die problematische Abfrage lautet:

$result = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT meta_value FROM $metatable WHERE meta_key LIKE '%matchme%' AND meta_value IS NOT NULL AND meta_value  ''" ) ); 

Gibt es eine Möglichkeit, den Fehler zu entfernen, indem Sie die obige Abfrage ändern?

Solutions Collecting From Web of "$ wpdb-> prepare () Warnung in WordPress 3.5"

Entfernen Sie den Aufruf von $wpdb->prepare() :

 $result = $wpdb->get_var( "SELECT DISTINCT meta_value FROM $metatable WHERE meta_key LIKE '%matchme%' AND meta_value IS NOT NULL AND meta_value <> ''" ); 

In diesem Fall macht die function $wpdb->prepare() nichts . Es gibt keine Variablen, die unbekannte Werte enthalten, daher müssen sie nicht bereinigt werden.

Wenn Sie Variablen haben, die bereinigt werden müssen, können Sie der function ein zweites Argument hinzufügen:

 $result = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT meta_value FROM %s WHERE meta_key LIKE '%matchme%' AND meta_value IS NOT NULL AND meta_value <> ''", $metatable ) ); 

Relevante Links:

  • PHP Warnung: Fehlendes Argument 2 für wpdb :: prepare ()
  • Ticket # 22873: Ziehen Sie in Betracht, zu einem Hinweis für $ wpdb-> prepare in 3.5.1 zu wechseln