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 :

delete fonctionnant en local mais pas sur site distant [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut delete fonctionnant en local mais pas sur site distant
    Bonjour,
    je me heurte à un petit problème avec l'ordre delete
    J'ai une table tb_hotel dans ma base de données
    Je fais un delete d'un enregistrement de cette table, enregistrement identifié par sa clé $cleHot = 20;
    En local l'enregistrement dont la clé = 20 est bien supprimé;
    Par contre sur le site distant d'un hébergeur, cet enregistrement n'est pas supprimé et aucun message n'est signalé;
    voici le script que j'ai volontairement réduit à sa plus simple expression pour mieux cerner le problème:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mysql_select_db($database_connectYieldProduc, $connectYieldProduc);
        $cleHot=20;
        $query_SupHot = "DELETE FROM bd_yieldproduc.tb_hotel WHERE tb_hotel.cleHotel = '$cleHot' ";
        $supprim = mysql_query($query_SupHot, $connectYieldProduc);

    Je ne vois pas pourquoi sur le site de l'hébergeur ce script ne supprime rien
    alors que j'ai vérifié avec PHPADMIN que dans ma base installée sur le site distant de l'hébergeur, cet enregistrement existe dans la table tb_hotel.

    Merci à l'avance de bien vouloir examiner mon problème.

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Le commit est-il fait?

    N'y aurait-il pas une option auto-commit sous phpadmin ?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ton problème n'est probablement pas dû à ça mais j'ai quelques remarques sur ton code...

    1) Si, comme il semble d'après l'affectation de valeur à la variable $cleHot, la colonne cleHotel est de type entier, alors inutile de mettre la variable entre apostrophes dans la requête.

    2) Puisque tu sélectionnes déjà la BDD par mysql_connect, inutile de repréciser cette BDD dans la requête.

    3) De même, puisque tu DELETE FROM tb_hotel, inutile de répéter le nom de la table dans le WHERE.

    4) Ajoute une capture d'erreur de MySQL pour mieux détecter d'où vient le problème

    Ton code allégé devient celui-ci :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mysql_select_db($database_connectYieldProduc, $connectYieldProduc);
    $cleHot=20;
    $query_SupHot = "
      DELETE FROM tb_hotel 
      WHERE cleHotel = $cleHot
    ";
    $supprim = mysql_query($query_SupHot, $connectYieldProduc) or die(mysql_error);
    Assure toi quand même que la variable $database_connectYieldProduc a bien la bonne valeur et que cette BDD existe avec ce nom sur le serveur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut delete fonctionnant en local mais pas sur site distant Répondre à la discussion
    j'ai oublié de spécifier que ma base de données est en MyIsam
    Pour le MyIsam l'ordre commit est-il utilisable car je ne suis pas en mode transactionnel.
    Par ailleurs je dois préciser à supposer que la mise à jour ce soit effectuée en différé, 24h après l'intruction delete, l'enregistrement devrait être supprimé alors que ce n'est pas le cas.

    A l'attention de CinePhil:
    merci pour tes conseils, j'en prends acte.

    Merci à tous de vous occuper de mon problème

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Est-ce que le user utilisé par ta connexion mysql distante a les droits de DELETE sur la table/base en question ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut delete fonctionnant en local mais pas sur site distant
    Bonjour,
    j'ai suivi vos conseils et rajouté la fonction "or die mysql_error" et dans ce cas est apparu le message erreur "delete: command denied to user
    'dbo344884133' ".
    Pensant à un problème de privilège j'ai alors rajouté l'instruction SQL "Grant SELECT, INSERT, UPDATE, DELETE ON TABLE tb_hotel TO dbo344884133 ";
    Après soumission de cette page corrigée le message suivant apparait:
    Grant command denied to user 'dbo344884133' ".

    Je ne comprends pas car la création d'enregistrement dans la même table (par l'instruction insert) fonctionne dans la base sur le site distant.

    Rappel du code soumis provoquant le message erreur:


    mysql_select_db($database_connectYieldProduc, $connectYieldProduc);
    //
    $cleHot=19;
    $query_Autoris = "
    GRANT SELECT, INSERT, UPDATE, DELETE
    ON TABLE tb_hotel
    TO dbo344884133
    ";
    mysql_query($query_Autoris, $connectYieldProduc) or die("erreur lors de l'autorisation : " . mysql_error()) ;
    $query_SupHot = "
    DELETE FROM bd_yieldproduc.tb_hotel WHERE cleHotel = $cleHot
    ";
    $supprim = mysql_query($query_SupHot, $connectYieldProduc) or die("erreur lors du delete : " . mysql_error()) ;
    //

    Si vous avez une idée je suis preneur;
    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête DELETE fonctionne en local mais pas sur le serveur
    Par abc.xyz dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 06/07/2015, 11h08
  2. [IIS 7] le site web fonctionne en local mais pas sur le net
    Par tortuegenie dans le forum IIS
    Réponses: 0
    Dernier message: 09/11/2012, 11h16
  3. Réponses: 1
    Dernier message: 29/05/2012, 10h36
  4. Réponses: 4
    Dernier message: 31/12/2008, 14h47
  5. AJAX : Fonctionne en local mais pas sur serveur distant ?
    Par jejefeds dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 19/06/2007, 14h26

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