Requêtes de suppression delete
Les requêtes de suppression doivent toujours utiliser un objet constructeur de requêtes. Elles sont exécutées en utilisant la méthode delete() de la manière suivante :
$query = $connection->delete('mytable', $options);
Cela crée un objet de requête de suppression qui supprime des enregistrements de la table mytable. Notez que les accolades ne sont pas nécessaires pour le nom de la table, car le constructeur de requêtes s'en chargera automatiquement.
L'objet de requête de suppression utilise une API fluide. C'est-à-dire que toutes les méthodes (sauf execute()) retournent l'objet de requête lui-même, permettant ainsi de chaîner les appels de méthodes. Dans de nombreux cas, cela signifie que l'objet de requête n'a même pas besoin d'être stocké dans une variable.
Les requêtes de suppression sont conceptuellement très simples et ne consistent qu'en une clause WHERE. La structure complète de la clause WHERE est décrite en détail dans la section « Conditions » et ne sera abordée ici que brièvement.
Une requête de suppression complète prendra la forme suivante :
$num_deleted = $connection->delete('mytable') ->condition('myfield', 5) ->execute();
La requête ci-dessus supprimera toutes les lignes de la table {mytable} où la colonne myfield est égale à 5. Cela équivaut à la requête suivante :
DELETE FROM {mytable} WHERE myfield=5;
La méthode execute() retourne le nombre d'enregistrements qui ont été supprimés à la suite de la requête.