Was ist falsch an diesem wpdb-Update?

Ich habe heute Abend viel Dokumentation gelesen, kann nicht verstehen, warum das nicht funktioniert. Offensichtlich fehlt mir etwas.

$newstr = "18,19"; $defid = 1; $table = "wp_tablename"; $data = "array( 'somecol' => '".$newstr."' )"; $where = "array( 'id' => ".$defid." )"; if ($wpdb->update( $table, $data, $where) === FALSE) { echo "failure"; } else { echo "success"; } 

Kommt jedes Mal falsch auf. Irgendwelche Hinweise? Was fehlt mir hier? Ich habe versucht, format_where und das hat auch nicht funktioniert.

Solutions Collecting From Web of "Was ist falsch an diesem wpdb-Update?"

Sie erstellen die Werte $data und $where als Strings, nicht als Arrays.

Dies:

 $data = "array( 'somecol' => '".$newstr."' )"; $where = "array( 'id' => ".$defid." )"; 

sollte sein:

 $data = array( 'somecol' => $newstr ); $where = array( 'id' => $defid ); 

Verwenden Sie nicht den ‘identischen’ Operator === , verwenden Sie einfach if ($wpdb->update(.......) {.......} da ein boolescher Wert an eine Kontrollstruktur übergeben wird Siehe PHP-Vergleichsoperatoren, siehe Milos Antwort für Strings und Arrays.