wpdb-> vorbereiten und mysql UPDATE – wie wird es gemacht?

Ich versuche, in einer Plugin-Abfrage ein ‘entferntes’ Datum anzugeben, aber ich bin mir nicht sicher, wie UPDATE SET mit $ wpdb-> prepare zu verwenden ist.

Hier ist meine Frage:

$cur_date = date('Ymd G:i:s'); $rows_affected = $wpdb->query( $wpdb->prepare(" UPDATE $table SET ( removed, post_id, user_id, status ) VALUES ( %s, %d, %d, %d ) "), array( $cur_date, $postid, $userid, 0 ) )); 

Kann ich UPDATE mit $ wpdb so einrichten? Sehr neu bei selbst erstellten DB-Abfragen.

Wenn nicht, wie soll / kann ich das erreichen?

Danke im Voraus!

BEARBEITEN ————————————————- –

Neuer Code:

 $table = $wpdb->prefix . 'ds_entry_swoons'; $cur_date = date('Ymd G:i:s'); $rows_affected = $wpdb->query( $wpdb->prepare(" UPDATE {$table} SET removed = %s, post_id = %d, user_id = %d, swoon_status = %d WHERE post_id = $postid AND user_id = $userid;", $cur_date, $postid, $userid, 0 ) )); 

Solutions Collecting From Web of "wpdb-> vorbereiten und mysql UPDATE – wie wird es gemacht?"

Ich habe deine Anfrage irgendwie korrigiert. Es benötigt eine Tabelle und eine WHERE-Bedingung, um zu verhindern, dass alle Zeilen geändert werden. Selbst ein LIMIT 1 am Ende wird nicht weh tun.

 $rows_affected = $wpdb->query( $wpdb->prepare( "UPDATE {$table} SET removed = %s, post_id = %d, user_id = %d, status = %d;", $cur_date = date('Ymd H:i:s'), $postid, $userid, 0 ) // $wpdb->prepare ); // $wpdb->query 

Fügen Sie einfach die WHERE … in der MySQL-Abfrage hinzu. Die richtige Verwendung von vorzubereiten ist:

 $wpdb->prepare($format, $arg1, $arg2, ...); // just like printf() 

Es gibt eine dedizierte $wpdb->update() -Methode, die sowohl ein praktischer Helfer für die Durchführung der UPDATE Abfrage ist als auch eine Bereinigung durchführt, wobei $wpdb->prepare() intern $wpdb->prepare() .

Sie können beliebig viele Variablen einfügen (% d igit,% s tring …)

 global $wpdb; $zz = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->postmeta SET meta_value = '%s' WHERE post_id = '%d' OR WHERE post_id = '%d' ", $value, $id_1, $id_2 ) ); var_dump($zz); exit;