Die Verwendung von $ wpdb erzeugt einen DB-Fehler

Ich versuche, Inhalte aus SQL-Tabellen mit $wpdb Objekt $wpdb . Problem ist, was auch immer ich versuche, es in meiner Abfrage zu verwenden, es druckt einen SQL-Fehler. Was ich versucht habe, ist etwas komplexer als das, was ich Ihnen zeigen werde, aber ich habe meine Abfrage nach und nach vereinfacht, um zu sehen, woher der Fehler kommen könnte, aber nie gefunden.

Also hier ist, was ich zuletzt versucht habe:

 show_errors(); $tableCustom = 'join_users_defis'; $requeteAffichage = $wpdb->get_results(' SELECT * FROM $wpdb->postmeta '); var_dump($requeteAffichage); ?> 

Für mich sollte es den Inhalt der Tabelle {$table_prefix}_postmeta (ich versuchte es mit anderen Tabellen) {$table_prefix}_postmeta , was eine Standard-WordPress-Tabelle ist. Stattdessen gibt es den folgenden Fehler aus (Danke an $wpdb->show_errors(); ):

WordPress-databaseerrors: [Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, für die richtige Syntax, um near ->_posts in Zeile 2 zu verwenden.]

Meine aktuelle Installation läuft lokal ( XAMPP ), mit MariaDB 10.1.16 / Apache / PHP 5.6.24

Um sicher zu sein, habe ich versucht, direkt mit meinem WordPress-Installationspräfix abzufragen, und es hat funktioniert.

Ist es ein Problem mit meiner Installation oder etwas, das ich vermisst habe? Ich könnte etwas Hilfe dabei gebrauchen.

Solutions Collecting From Web of "Die Verwendung von $ wpdb erzeugt einen DB-Fehler"

Es ist ein Syntaxerrors nach Fehlermeldung. Starrungen wie unten könnten für dich funktionieren.

 global $wpdb; $wpdb->show_errors(); $tableCustom = 'join_users_defis'; $sql = "SELECT * FROM {$wpdb->postmeta}"; $requeteAffichage = $wpdb->get_row( $sql ); //or $requeteAffichage = $wpdb->get_results( $sql ); var_dump($requeteAffichage); 

$wpdb-> gehört nicht in die Abfrage.

Veränderung

 $requeteAffichage = $wpdb->get_results(" SELECT * FROM $wpdb->postmeta "); 

zu

 $prefix = $wpdb->prefix; $postmeta = $prefix . 'postmeta'; $requeteAffichage = $wpdb->get_results(" SELECT * FROM $postmeta "); 

(oder, wenn Sie ein anderes Tabellenpräfix verwenden, ersetzen Sie dieses Präfix für wp_.)

Sie müssen String-Literale mit doppelten Anführungszeichen verwenden, damit PHP die Variablen in der Zeichenfolge richtig interpretiert. Veränderung:

 $wpdb->get_results('SELECT * FROM $wpdb->postmeta'); 

zu:

 $wpdb->get_results("SELECT * FROM {$wpdb->postmeta}");