Verwenden von $wpdb in WordPress zum Ausführen von SQL-Befehlen

Lesezeit: 2 Minuten

Benutzeravatar von GRS
GRS

Ich habe einen einfachen Update-Befehl erstellt, um einen Datenbankeintrag zu aktualisieren. Ich möchte in der Lage sein, jede SQL-Anweisung auszuführen und meine WordPress-Datenbank zu aktualisieren:

<?php    
global $wpdb;
$sql = "UPDATE tablename SET column1='testdata' WHERE id=1";
$results = get_results($sql); ?>

oder

$results = query($sql);

Egal was ich mache bekomme ich den Fehler:

Schwerwiegender Fehler: Aufruf einer Member-Funktion get_results() auf null in C:\MAMP\htdocs\new\samplesql.php in Zeile 4

Benutzeravatar von miken32
Mike32

Versuchen Sie stattdessen Folgendes:

<?php    
include_once("wp-config.php");
include_once("wp-includes/wp-db.php");

$sql = "UPDATE tablename SET column1='testdata' WHERE id=1";
$results = $wpdb->get_results($sql);

Sie müssen die Dateien einschließen, in denen das Datenbankobjekt definiert ist.

  • Ich sehe, bei mir funktioniert es auch. Ich bin überrascht, dass ich dies nicht in der Funktionsdokumentation erwähnt habe. Jedenfalls vielen Dank!

    – GRS

    23. Februar 2017 um 0:27 Uhr

  • Ich habe viel recherchiert, um einen einfachen Weg und Code zu finden, der wirklich funktioniert. Der Code, den Sie geschrieben haben, ist großartig und funktioniert gut. Mein WordPress ist Version 6

    – masoud nkh

    26. Mai um 11:48 Uhr

Benutzeravatar von GerritElbrink
Gerrit Elbrink

Die Funktionen get_results() und query() funktionieren nur in Kombination mit der globalen $wpdb.

Zum Beispiel:

global $wpdb;
$wpdb->get_results($sql);

Hier ist ein vollständiges Beispiel.

global $wpdb;
$sql="SELECT p.post_title FROM wp_posts as p WHERE p.post_status = %s";
$vars = ['publish'];
$result = $wpdb->get_results( $wpdb->prepare($sql, $vars) );

Ich erstelle gerne eine WordPress-Seitenvorlage und muss dann keine erforderlichen WordPress-Dateien hochladen. Das WordPress-Framework ist bereits geladen.

Erstellen Sie eine neue Datei in Ihrem Themenverzeichnis, benennen Sie sie in etwa „template-phpwork.php“ und dann wird der Inhalt in der Datei sein:

<?php /* Template Name: Custom PHP Work */ 

?>

Und Sie können Ihren Code in diese Datei einfügen.

Erstellen Sie eine neue WordPress-Seite und wählen Sie die Vorlage „Custom PHP Work“.

Veröffentlichen und zeigen Sie dann Ihre Seite an, und Sie können sie so oft wie nötig neu laden, um Ihre benutzerdefinierten Codeanforderungen zu erfüllen.

1401370cookie-checkVerwenden von $wpdb in WordPress zum Ausführen von SQL-Befehlen

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

Privacy policy