Lavorare con il database in Drupal 7 – Lezione 10 – Query di eliminazione (DELETE)
Le query di eliminazione devono essere costruite utilizzando il costruttore di query. Esse iniziano con la funzione db_delete():
<?php $query = db_delete('node', $options); ?>
Questa query di eliminazione rimuoverà i record dalla tabella node. Nota che non è necessario racchiudere il nome della tabella tra parentesi graffe — il costruttore di query lo fa automaticamente. Le query di eliminazione utilizzano il Fluent API, cioè tutti i metodi (tranne execute()
) restituiscono l’oggetto della query stessa, proprio come avviene per le query di aggiornamento (UPDATE
) e di inserimento (INSERT
).
Le query di eliminazione sono molto semplici e utilizzano solo espressioni WHERE. Parleremo più in dettaglio del WHERE in una lezione successiva, ma per ora vediamo un esempio di query di eliminazione:
<?php $num_deleted = db_delete('node') ->condition('nid', 5) ->execute(); ?>
Questa query eliminerà tutte le righe dalla tabella node in cui nid = 5
.
La query sopra è equivalente a:
DELETE FROM {node} WHERE nid=5;
Il metodo execute() restituisce il numero di record che sono stati eliminati a seguito dell’esecuzione della query.