it-swarm.com.de

$ wpdb-> Spaltenwerte löschen IN ARRAY ()?

Ich frage mich, ob das möglich ist?

$wpdb->delete(
    'table_name',
    array('id' => array(1, 2, 3)),
    array('%d')
);

In dieser Situation sollten also 3 Zeilen gleichzeitig entfernt und die Datenbank nur einmal aufgerufen werden. Ich habe viele Löschvorgänge, die mit meinem Skript möglich sein könnten, und würde es vorziehen, den Löschvorgang nur einmal durchzuführen, anstatt alle IDs durchlaufen zu müssen und einen $wpdb->delete für jede einzelne zu erstellen. Ist das möglich? Scheint so, als sollte es sein ...

1
Solomon Closson

Nein, wpdb::delete verarbeitet nicht etwas anderes als WHERE field = X. Sie können stattdessen auch die Methode query verwenden:

$ids = implode( ',', array_map( 'absint', $ids ) );
$wpdb->query( "DELETE FROM table_name WHERE ID IN($ids)" );
4
TheDeadMedic