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 :

Impossible de DELETE un record MySql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 189
    Par défaut Impossible de DELETE un record MySql
    Bonjour,

    Bonne année et meilleurs voeux à tous.

    J'ai une BD dans laquelle j'enregistre des lien URL.

    J'ai la possibilité de supprimer un lien en cliquant sur un bouton (PDO && DELETE).

    Si le lien (le URL d'un site) est sans extension (URL de base), la suppression est réussie.

    Par contre dès que le URL contient des extensions comme (xxxpip.php?page=article&id_article=373), il est impossible de le supprimer.

    Auriez-vous une solution, svp ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 511
    Par défaut
    Bonjour,
    Il faudrait nous donner la requête, ainsi que le message d'erreur, sinon il nous est impossible de répondre.

    Tatayo

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2019
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 189
    Par défaut
    Bonjour Tatayo

    Au début, j'ai voulu donner la possibilité aux utilisateurs d'enregistrer plusieurs URL et leur attribuer le même titre (le titre qui s'affiche sur la page d'affichage des liens URL). Donc, et pour ne pas supprimer tous les liens qui portent le même titre, j'ai préciser dans la requête DELETE (WHERE titre=:titre && utilisateur=: utilisateur && contenu=:contenu).
    Et ce contenu du lien qui se refuse à la suppression quand il contient une extension.

    Finalement, j'ai corrigé ma "connerie" en replaçant && contenu=:contenu par && id=id.

    Merci beaucoup et meilleurs voeux

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 728
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    @Ouzfa vous avez résolu votre problème, tant mieux, mais pensez aux autres participants : vous ne communiquez ni la requête initiale exacte, ni le message d'erreur, ni la description de la table, ni la requête modifiée complète.
    Ce faisant, ce fil de discussion est sans intérêt pour les autres contributeurs...


    Par ailleurs
    plutôt que "impossible de DELETE un record", on dira "suppression d'une ligne impossible".
    En effet, dans une table d'une base relationnelle, on parle de ligne et non pas de "record".

    Concernant la requête DELETE :
    • il manque le nom de la table ou de la vue ;
    • l'opérateur && n'est pas un opérateur SQL standard, il est préférable d'utiliser AND ;
    • dans la mesure où la restriction ne comporte que des opérateurs AND, les parenthèses sont inutiles, autant simplifier.

    Ce faisant, la syntaxe correcte est :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    delete from MA_VUE
    where  titre = :titre 
      and  utilisateur =: utilisateur 
      and  contenu = :contenu

    Également, il est dangereux de supprimer des lignes par DELETE en utilisant des critères de types chaines de caractères. La valeur est rarement unique et on risque de supprimer d'autres lignes que celles souhaitées.
    De plus, la colonne "titre" et plus encore la colonne "contenu" ne sont probablement pas indexées, les performances seront donc mauvaises.
    Pour ces deux raisons, il est nettement préférable d'opérer la restriction sur la PK de la table, ou à défaut, sur un ensemble de colonnes ayant une contrainte d'unicité.

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

Discussions similaires

  1. Impossible de charger le driver MySQL
    Par supernova dans le forum JOnAS
    Réponses: 4
    Dernier message: 04/04/2007, 20h01
  2. impossible de me connecter à mysql!
    Par Shyboy dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/07/2006, 22h22
  3. impossible de me connecter à mysql
    Par bris dans le forum Installation
    Réponses: 5
    Dernier message: 09/03/2006, 10h29
  4. impossible de se connecter à MySql
    Par nazaghi dans le forum Débuter
    Réponses: 15
    Dernier message: 27/01/2006, 21h33
  5. Erreur 1045 impossible de se connecter à mysql via un script
    Par julian-brokendolls dans le forum Installation
    Réponses: 7
    Dernier message: 05/01/2006, 05h23

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