2017-02-21 2 views
0

Ich arbeite an einer Wordpress-Website mit einem benutzerdefinierten Thema, und ich kann nicht herausfinden, wie man $ wpdb-> vorbereiten ($ query, $ Args) zu arbeiten.

Das Problem

Ich habe eine Funktion in wp-content/themes/mytheme/php/functions.php die ($ args $ query,) $ wpdb- läuft> bereiten die Abfrage von SQL zu schützen Injektion vor dem Ausführen der Abfrage und Einfügen einiger neuer Daten. Wenn ich jedoch diese Funktion ausführen, erhalte ich einen Fehler, der lautet: "Aufruf einer Elementfunktion prepare() on null" in der Zeile, in der $ wpdb-prepare() ausgeführt wird. Ich habe gegoogelt und festgestellt, dass dies bedeutet, dass $ wpdb nicht definiert wurde.

Was habe ich versucht,

Wie schon aus anderen Threads fand ich online, habe ich versucht zu definieren

global $wpdb 

sowohl in meiner Funktion und an der Spitze der functions.php. Als das nicht funktionierte habe ich versucht

an der Spitze der functions.php, aber immer noch nichts.

Hat jemand andere Ideen, was ich ausprobieren könnte?

Antwort

1

Es ruft auf die Funktion ganz gut, aber es findet keine gültige Eingabe (null). Was verwenden Sie, um Ihren Tabellennamen zu definieren? Ich hatte es vorher, wo ein $ wpdb nicht ausgeführt wird, wenn ich es so vordefiniert habe:

global $wpdb; 
$table = $wpdb->prefix . "table_name"; 
$sql = $wpdb->prepare("SELECT * FROM {$table} ORDER BY something DESC"); 
$result = $wpdb->get_results($sql , ARRAY_A); 
+1

Ah yep, das war es lol. Danke, dass du das für mich geklärt hast! – ConorBaumgart

Verwandte Themen