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 :

Requete qui s'execute à moitié [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 151
    Points
    151
    Par défaut Requete qui s'execute à moitié
    Bonjour

    je vous montre ma requete :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO mail 
    (IDREQUETE,SUJET,MAILHTML,MAILTXT,NUM_MODIF,SUJETEN,MAILHTMLEN,MAILTXTEN,SUJETDE,MAILHTMLDE,MAILTXTDE) 
    values('14','sujet : èé',
       '<p><font color="#ff0000"><strong>Test caracteres speciaux :</strong></font></p><p>&amp; &eacute; &quot; \' ( - &egrave; _ &ccedil; &agrave; ) =</p><p><strong><font color="#339966">Test flux rss :</font></strong></p><p>[RSS:Blog_Studio-Scrap]</p>',
       'Test caracteres speciaux :\r\n\r\n& é \" \' ( - è _ ç à ) =\r\n\r\nTest flux rss :\r\n\r\n[RSS:Blog_Studio-Scrap]',
       0,'','','','','','')

    Cette requete fonctionne parfaitement... quand je passe par phpmyadmin mais si je fais ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query = "INSERT INTO mail (IDREQUETE,SUJET,MAILHTML,MAILTXT,NUM_MODIF,SUJETEN,MAILHTMLEN,MAILTXTEN,SUJETDE,MAILHTMLDE,MAILTXTDE)
    values('$id','$objet','".mysql_real_escape_string($html,$rsc)."','".mysql_real_escape_string($txt,$rsc)."',0,'".$objeten."','".$htmlen."','".$txten."','".$objetde."','".$htmlde."','".$txtde."')";
    echo $query;
    mysql_query($query);

    Et bien cette meme requete ne se fait pas en entier.

    C'est à dire, la donnée .mysql_real_escape_string($txt,$rsc). ne s'enregistre qu'à moitier. Aprés execution, dans ma BDD, je me retrouve avec :
    Test caracteres speciaux :

    &
    au lieu de
    Test caracteres speciaux :

    & é " ' ( - è _ ç à ) =

    Test flux rss :

    [RSS:Blog_Studio-Scrap]

  2. #2
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Salut,

    Essaye cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query = 'INSERT INTO mail (IDREQUETE,SUJET,MAILHTML,MAILTXT,NUM_MODIF,SUJETEN,MAILHTMLEN,MAILTXTEN,SUJETDE,MAILHTMLDE,MAILTXTDE)
    values("'.$id.'","'.$objet.'","'.mysql_real_escape_string($html,$rsc).'","'.mysql_real_escape_string($txt,$rsc).'",0,"'.$objeten.'","'.$htmlen.'","'.$txten.'","'.$objetde.'","'.$htmlde.'","'.$txtde.'")';
    mysql_query($query);
    Cordialement

  3. #3
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    C'est étrange que ta requêtes s'éxecute partiellement, normalement elle est exécutée ou rejetée en bloc sous MySQL à ma connaissance.

    Néanmois, j'aurais plutôt écrit ta requête comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = 'INSERT INTO mail (IDREQUETE,SUJET,MAILHTML,MAILTXT,NUM_MODIF,SUJETEN,MAILHTMLEN,MAILTXTEN,SUJETDE,MAILHTMLDE,MAILTXTDE)
    values("'.$id.'","'.$objet.'","'.mysql_real_escape_string($html,$rsc).'","'.mysql_real_escape_string($txt,$rsc).'","0","'.$objeten.'","'.$htmlen.'","'.$txten.'","'.$objetde.'","'.$htmlde.'","'.$txtde.'")';
    C'est un brin plus lisible et tu repères mieux les fautes de syntaxe.

    Mais pour connaitre ton erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($query) or die ('Ma Requete : '.$query.' Mon erreur : '.mysql_error())

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 151
    Points
    151
    Par défaut
    Pas de changement, ça me fait la même chose et je n'ai pas d'erreur.

  5. #5
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Ca vient peut-être de tes variables $html, $txt et $rsc, elles correspont à quoi ?

  6. #6
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 151
    Points
    151
    Par défaut
    $html et $txt se sont des chaines de caractères elle contiennent ce que l'on peux voir dans mon premier post (résultat du echo) et $rsc c'est ma ressource de connexion à mysql.

    Auparavant, je faisait un htmlentities() sur $text et ça marchait, mais comme je veux du texte et pas du html, je l'ai enlevé et depuis ça me fait ce truc bizarre ^^

  7. #7
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    As-tu vraiment besoin de $src ? Normalement il n'a pas besoin d'être précisé.
    mysql_real_escape_string

    Tu as besoin de cette fonction pour protéger ta base, mais peut-être qu'avec tes caractères spéciaux ça te génère une erreur...

  8. #8
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 151
    Points
    151
    Par défaut
    J'ai trouvé d'où venait le problème, c'était juste a cause de l'encodage des caractères. La base en Latin I et les données en utf-8. C'est pour ça que l'enregistrement bloqué juste avant le "é".

  9. #9
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Bientôt PHP 6 et adieu les problèmes d'encodage ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/02/2013, 18h36
  2. Fonction qui s'execute à moitié avec Onmouseover
    Par kenobi54 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/04/2012, 19h26
  3. Réponses: 1
    Dernier message: 03/05/2007, 11h21
  4. [ASA6]Requetes qui prennent du temps a executer
    Par sboffin dans le forum Sybase
    Réponses: 5
    Dernier message: 16/10/2006, 13h20
  5. Réponses: 2
    Dernier message: 10/06/2006, 06h02

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