WordPress wpdb undefinierte Variable

Lesezeit: 2 Minuten

Ich schreibe ein Plugin und versuche, einige Daten aus einer benutzerdefinierten Tabelle in meiner Datenbank anzufordern, indem ich Folgendes verwende:

$current_text = $wpdb->get_results("SELECT text FROM addtext ORDER BY id DESC LIMIT 1");

bekomme aber nur den Fehler Undefinierte Variable: wpdb

Irgendeine Idee, warum das nicht funktioniert? Ich habe die Dokumentation verfolgt und Google durchforstet, ohne Glück. Noch ziemlich neu für WP-Plugins, also wahrscheinlich etwas Offensichtliches.

Vielen Dank!

musste ich verwenden global $wpdb; in meiner Funktion.

  • 2,5 Jahre später, und Ihre Antwort hat mir geholfen. Vielen Dank!

    – Brandon

    9. August 2013 um 16:23 Uhr

  • 3 Jahre später, und Ihre Antwort hat mir auch geholfen. Vielen Dank!

    – Valentin Mercier

    3. Januar 2014 um 12:48 Uhr

  • 4 Jahre später, und Ihre Antwort hat es wieder getan! Vielen Dank!

    – Markvds

    10. März 2015 um 13:16 Uhr

  • 5 Jahre später, und Ihre Antwort hat es wieder getan! Vielen Dank!

    – Sasa1234

    16. April 2016 um 11:36 Uhr

  • 9 Jahre später, und Ihre Antwort hat es wieder getan! Vielen Dank!

    – MattFisch

    7. Juli 2020 um 8:27 Uhr

Benutzeravatar von RalphTheWonderLlama
RalphTheWonderLama

Eine Anmerkung zum Hinzufügen: Sie können nicht verwenden global innerhalb einer Klasse, und natürlich müssen Sie verwenden global um Ihre Objekte zum Laufen zu bringen $wpdb.

Während Sie nicht verwenden können global sofort innerhalb einer Klasse müssen Sie deklarieren $wpdb wie global innerhalb einer Funktion innerhalb der Klasse, und das funktioniert.

zB Dies gibt Ihnen einen Fehler:

class wpdb_test {
        global $wpdb; // can't use global as a direct 'child' of a class
        public function __construct () {
            ...
        }
}

Da global kann nicht direkt innerhalb einer Klasse verwendet werden. Ebenso einfach referenzieren $wpdb innerhalb der Klasse Auch gibt Ihnen einen Fehler, weil das Objekt nicht weiß, was $wpdb ist. Du musst deklarieren $wpdb wie global aus einer Funktion, die sich in Ihrer Klasse befindet.

zB Das funktioniert ganz gut:

class wpdb_test {
        public $variable_name;
        public function __construct () {
            global $wpdb; // safe to use because it's inside a function
            ...
        }
}

…und weil $wpdb wurde erklärt global innerhalb einer Funktion Innerhalb eine Klasse, die Sie verwenden können.

  • Danke @RalphTheWonderLlama, du hast einem PHP-Neuling gerade etwas Frust erspart.

    – KDev

    22. September 2021 um 11:42 Uhr

1402280cookie-checkWordPress wpdb undefinierte Variable

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy