IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mysqli->multi_query pour des DELETE.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut Mysqli->multi_query pour des DELETE.
    Bonjour,
    je suis actuellement confronter a un probleme de php/MYSQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (is_numeric($this->ticketid))
    {
    	$id = $this->id;
    	$query = "DELETE FROM user where id = $id;
    DELETE FROM user_sub where parentid = $id;
    DELETE FROM user_ass where id = $id;";
    	$this->linkmysqli->multi_query($query);
    	return (true);
    }
    return (false);
    Cette fonction doit me permettre de delete des entrees dans la base de donne.
    Le probleme c'est que je passe cette fonction dans une boucle, et la fonction ne me supprime que le premier user.

    Faut-il faire un close entre chaque requette ?
    $this->mysqli->close();

    Merci a vous tous.

  2. #2
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Non, tu ne fermes ta connexion que quand tu as terminé tes requêtes.

    Mais pour commencer, es-tu bien certain d'avoir plusieurs users qui ont le même id dans ta dB .... ? (Auquel cas, il faut p-ê se poser des questions sur ta dB)

    Ensuite je ne vois pas trop l'interet du "return false", là, le pauvre, tt seul posé au milieu de rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (is_numeric($this->ticketid)) {
    $id = $this->id;
    $query = "DELETE FROM user where id = $id;
    DELETE FROM user_sub where parentid = $id;
    DELETE FROM user_ass where id = $id;";
    $this->linkmysqli->multi_query($query);
    return (true);
    }
    else {
      return (false);
    }
    Enfin, juste par sécurité, j'ajouterai un petit LIMIT histoire de ne pas scratcher tte ta base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "DELETE FROM user where id = $id LIMIT 10 ... ";
    Pour terminer, tu peux découper ta requête en 3 avant de la grouper, tu y verras plus clair pour debugguer.

Discussions similaires

  1. [2.x] Générer des CSRF tokens pour des boutons delete
    Par Hotgeart dans le forum Symfony
    Réponses: 0
    Dernier message: 30/08/2013, 18h16
  2. Réponses: 4
    Dernier message: 06/12/2008, 09h51
  3. delete[] seulement pour des tableaux d'objets?
    Par Crisanar dans le forum C++
    Réponses: 7
    Dernier message: 22/10/2005, 19h50
  4. [Logiciel]Cherche graphisme pour des interfaces visuelles
    Par smyley dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 14/11/2004, 02h13
  5. package ambiguïté pour des classes de même nom
    Par soad dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2004, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo