eigene Tabelle mit wpdb-Klasse auslesen

  • Ich habe eine individuelle Datenbanktabelle in der Wordpress-Datenbank erstellt und möchte die in einem Seiten-Template auslesen.
    Wenn ich jetzt die Selects mit der wpdb-Klasse zum Test auf Wordpress-Standard-Tabellen ausführe, funktioniert das auch einwandfrei.
    Sobald ich auf meine eigene oder auch auf Plugin-spezifische (z. B. WP_SIMILAR_TAGS) Tabellen zugreifen will, bekomme ich eine Fehlermeldung:

    WordPress database error: [You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1]
    SELECT beispielspalte FROM WHERE beispielspalte > 1

    Woran könnte das liegen? Auffällig ist, dass in der Fehlermeldung zwischen FROM und WHERE nichts steht.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Könntest Du bitte den gesamten Code der Abfrage veröffentlichen? Also zum Beispiel so hier:

    Code
    global $wpdb;
    $meineabfrage = $wpdb->get_var("SELECT blub_feld FROM $wpdb->frupmixer WHERE mixer = '1'");
    return intval($meineabfrage);
  • hier der gesamte Code:

  • PHP
    $ergebnis = $wpdb->get_col("SELECT beispielfeld FROM $wpdb->eigenetabelle WHERE jahr = 2008");


    In der WPDB-Klasse ist ja sicher deine Tabelle nicht als Membervariable hinterlegt, also kannst du auch nicht per $wpdb->eigenetabelle darauf zugreifen. So gehts:

    PHP
    $ergebnis = $wpdb->get_col("SELECT beispielfeld FROM {$table_prefix}eigenetabelle WHERE jahr = 2008");


    oder

    PHP
    $ergebnis = $wpdb->get_col("SELECT beispielfeld FROM {$wpdb->prefix}eigenetabelle WHERE jahr = 2008");


    (Welche Version jetzt besser ist kann ich dir nicht sagen, $table_prefix ist ne globale Variable, was ja an sich schon unschön ist, aber der Zugriff zu $wpdb->prefix ist im PHPDoc als "private" angegeben, was bei der PHP4-Syntax aber keine Auswirkungen auf die tatsächliche Sichtbarkeit hat)

    [SIZE="1"]PS: in XHTML schreibt man HTML-Elementnamen klein. ;-)[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!