web-dev-qa-db-fra.com

Comment supprimer tous les enregistrements ou vider une table de données personnalisée?

Je n'arrive pas à trouver un moyen simple et fiable de faire cela - peut-être ?:

// 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;
}

Mais cela me donne le classique:

Vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de '* FROM wp_table_name' à la ligne 1.

5
Q Studio

Merci @s_ha_dum - Truncate fait bien son travail:

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

Je voudrais simplement modifier l'exemple de Q Studio en: global $wpdb; $table = $wpdb->prefix . 'table_name'; $delete = $wpdb->query("TRUNCATE TABLE $table");

7
Bobz

2 ans de retard, mais peut-être que cela aidera quelqu'un dans le futur :)

La syntaxe correcte pour supprimer des lignes d'une table MySQL est la suivante:

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

C'est tard et la réponse a été acceptée. Mais personne n'a mentionné que votre instruction SQL DELETE est incorrecte. Essaye ça:

DELETE FROM `wp_table_name`

Cependant, cela pourrait toujours ne pas fonctionner. Vous devrez peut-être modifier vos paramètres MariaDB/MySQL, qui protègent de telles suppressions, pour vous éviter de supprimer par erreur un ensemble complet de données. Pour que cela fonctionne, vous devez

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

À votre santé

0
Greeso