it-swarm.com.de

$ wpdb-> prepare () Warnung in WordPress 3.5

Ich erhalte diese Warnung, wenn ich versuche, eine Datenbankabfrage 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 durch Ändern der obigen Abfrage zu beheben?

5
Emerson Maningo

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 ist die Funktion $wpdb->prepare()nichts zu tun. Es gibt keine Variablen mit unbekannten Werten, daher ist es nicht erforderlich, sie zu bereinigen.

Wenn Sie did Variablen haben, die bereinigt werden müssen, können Sie der Funktion 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:

6
Mark Kaplun