Comment pouvons-nous supprimer des champs de plusieurs tables en utilisant db_delete()
et INNER JOIN
dans Drupal 7?
9
Comment pouvons-nous supprimer des champs de plusieurs tables en utilisant db_delete()
et INNER JOIN
dans Drupal 7?
Tu ne peux pas, j'ai peur.
db_delete()
prend un paramètre de chaîne unique pour définir sur quelle table la requête doit être exécutée. Il n'y a aucune possibilité de fournir plus d'une table à la fois.
Vous pouvez cependant exécuter n'importe quelle instruction SQL de votre choix, par db_query()
exemple.
// Deletes all nodes and related author users...please don't actually run this!!
$sql = 'DELETE u, n FROM {node} n INNER JOIN {users} u ON u.uid = n.uid';
db_query($sql);
db_delete
prend un seul paramètre, sans autoriser d'alias, c'est ennuyeux. Sinon, il serait possible d'utiliser des JOIN similaires à db_select.Oui, db_delete prend un seul paramètre. Vous devez appeler
db_delete()
plusieurs fois pour supprimer des données de plusieurs tables. Veuillez consulter l'exemple de code suivant:Lien source:
https://github.com/drupal/drupal/blob/7.x/modules/block/block.module
https://api.drupal.org/api/drupal/modules%21block%21block.module/ 7.x
la source