it-swarm.com.de

Wie lösche ich alle Datensätze aus einer benutzerdefinierten Datenbanktabelle?

Ich kann anscheinend keinen einfachen, zuverlässigen Weg finden, um dies zu tun - vielleicht ?:

// delete row ##
global $wpdb;
$delete = $wpdb->query( 
    $wpdb->prepare( 
         "DELETE * FROM `wp_table_name`"
    )
);

// return ##
$return = __('Table Emptied.');
if ( $wpdb->last_error ) {
    $return = $wpdb->last_error;
}

Aber das gibt mir den Klassiker:

Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von '* FROM wp_table_name' in Zeile 1

5
Q Studio

Danke @s_ha_dum - Truncate macht den Job gut:

// delete row ##
global $wpdb;
$delete = $wpdb->query("TRUNCATE TABLE `wp_table_name`");
5
Q Studio

Ich würde nur das Q Studio-Beispiel folgendermaßen ändern: global $wpdb; $table = $wpdb->prefix . 'table_name'; $delete = $wpdb->query("TRUNCATE TABLE $table");

7
Bobz

2 Jahre zu spät, aber vielleicht hilft das jemandem in der Zukunft :)

Die korrekte Syntax zum Löschen von Zeilen aus einer MySQL-Tabelle lautet:

DELETE FROM `wp_table_name`
WHERE 1 = 1;
2
dale3h

Dies ist zu spät und die Antwort wurde akzeptiert. Aber niemand hat erwähnt, dass Ihre DELETE SQL-Anweisung falsch ist. Versuche dies:

DELETE FROM `wp_table_name`

Dies funktioniert jedoch möglicherweise immer noch nicht. Möglicherweise müssen Sie Ihre MariaDB/MySQL-Einstellungen ändern, um solche Löschvorgänge zu verhindern, dass Sie versehentlich einen vollständigen Datensatz löschen. Damit es funktioniert, muss man

DELETE FROM `wp_table_name` WHERE `some_column` = 'some_value'

Prost

0
Greeso