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

Requêtes MySQL Discussion :

Erreur SQL improbable


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Par défaut Erreur SQL improbable
    Bonjour,
    J'ai un souci avec une requête banale qui bloque d'une manière totalement improbable.

    Voici la requête :
    $mod = "update listemail set envoi=1 where mel = '$mel' ";
    mysql_query($mod,$cnx) or die('Erreur SQL !'.$mod.'<br>'.mysql_error());
    $mel correspond à des adresses email.
    Cette requêt fonctionne parfaitement sauf pour les adresses du type @tele2allin , le système me renvoie l'erreur :
    Erreur SQL !update listemail set envoi=1 where mel = 'xx@tele2allin.be'
    MySQL server has gone away
    Si je vais directement sur phpmyadmin en ligne, et que j'insère le update manuellement, il n'y a pas d'erreur... j'ai mis 2h pour trouver que ce sont ces adresses qui créent le bug, en revanche je ne comprends pas pourquoi ? peut-être les 2 "l" ?
    J'ai la même erreur sur les requêtes insert.
    Quelqu'un a une idée ?

  2. #2
    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
    Tu mets à jour ou insères combien de lignes avec ta requête ?
    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 !

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Par défaut
    la requête insert plusieurs centaine de mail, mais dès que j'ai identifié le souci de ces mails, j'ai fait une insertion unique pour vérifier.
    Le problème se pose également avec la fonction mail($mel), si $mel=xx@tele2allin, le système renvoie une erreur...
    Pour le moment j'ai simplement fait un strpos sur les mails et supprimer les requêtes dès que ces adresses apparaissent.

  4. #4
    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
    Il n'y a pas de raison objective pour que cette requête fasse planter le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update listemail 
    set envoi=1 
    where mel = 'xx@tele2allin.be'
    La syntaxe est bonne, la valeur a rechercher dans la colonne mel est entre apostrophes donc il n'y a pas d'interprétation du contenu par le SGBD...

    la requête insert plusieurs centaine de mail
    Combien de lignes fait la table ?
    Est-elle indexée ? Si oui, sur quelles colonnes ?

    Plusieurs centaines veut-il dire que ton programme envoie plusieurs centaines de requêtes au serveur en un temps très court ? C'est peut-être là qu'est le problème !

    Tu peux essayer de désactiver les index avant la mise à jour en masse puis de les réactiver ensuite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE listemail
    DISABLE INDEX
    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 !

  5. #5
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Par défaut
    oui en effet la requête d'origine insert une centaine de ligne, mais après avoir identifié le souci, j'ai testé avec une seule ligne... et ça plante.
    Donc je met dans ma base une seule ligne avec l'adresse xx@tele2allin.be, j'exécute ma requête en php, et il plante.

  6. #6
    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
    Bis repetita :
    Combien de lignes fait la table ?
    Est-elle indexée ? Si oui, sur quelles colonnes ?
    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 !

Discussions similaires

  1. [sqlwindows] erreur sql
    Par chassonj dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 15/12/2003, 11h02
  2. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06
  3. Erreurs SQL Server
    Par ZuZu dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 09/10/2003, 16h23
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38
  5. erreur sql loader et performance
    Par mobisky dans le forum SQL*Loader
    Réponses: 14
    Dernier message: 20/08/2003, 12h27

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