Problem bei der Verwendung von wpdb

Ich habe “wpdb” in meinem Code verwendet, aber es funktionierte nicht und der folgende Fehler:

Schwerwiegender Fehler: Aufruf einer Memberfunktion insert () für ein Nicht-Objekt

Hinweis: Versuch, die Eigenschaft von Nicht-Objekt zu erhalten “in tablename = $ wpdb-> prefix.’complaint ‘;

global $wpdb; $name = $_POST["name"]; $email = $_POST["email"]; $dis = $_POST["dis"]; $code = $_POST["code"]; function insert_record_to_db($name,$email,$dis){ global $wpdb; $tablename = $wpdb->prefix.'complaint'; $data=array( 'name' => '$name', 'email' => '$email', 'dis' => '$dis' ); $format= array('%s','%s','%s'); $wpdb->insert( $tablename , $data , $format ); }; insert_record_to_db($name,$email,$dis); 

Solutions Collecting From Web of "Problem bei der Verwendung von wpdb"

Dieser Fehler:

Schwerwiegender Fehler: Aufruf einer Memberfunktion insert () für ein Nicht-Objekt

$wpdb dass $wpdb nicht instanziiert wird, so dass Sie Ihren Code zu früh oder außerhalb des WordPress-Kontexts ausführen – zum Beispiel in einer externen PHP-Datei, auf die direkt zugegriffen wird, was ich vermute (schlecht durchdachte AJAX-Anfrage vielleicht?).

Wie bereits erwähnt, hat der Code mehr Formate, die dazu führen, dass Datenelemente und Ihre einfachen Anführungszeichen dazu führen, dass Sie (in gewissem Sinne) sowieso “$ email” und “$ name” -Strings in die database einfügen.

 function insert_record_to_db($name,$email,$dis){ global $wpdb; $tablename = $wpdb->prefix.'complaint'; $data=array( 'name' => $name, 'email' => $email, 'dis' => $dis ); $format= array('%s','%s','%s'); $wpdb->insert( $tablename , $data , $format ); }; insert_record_to_db('a','b','c');