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 :

Encore un problème de requête MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut Encore un problème de requête MySQL
    Bonjour à tous,

    Je souhaite vous faire part d'un problème que je n'arrive pas à résoudre.

    A l'aide d'un tuto, j'ai créé un système de publication de news.

    Il fonctionnait très bien quand je testait l'application en insérant juste une petite phrase.

    Mais quand je tapais un long texte long, j'avais un message d'erreur qui me disait en gros que j'avais une erreur avec ma requete INSERT INTO... et qu'il s'agissait d'une erreur de syntaxe et que je devais voir le manuel [...] à la ligne 1. (je pense que pas mal de gens connaissent ce message d'erreur).

    En faisant des recherches sur le forum, j'ai pu trouver une solution, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    // Récupération des données à partir du formulaire
    // Il fallait noter ça :
    $title = mysql_real_escape_string($_POST['title']);
    $content = mysql_real_escape_string($_POST['content']);
    $contact = mysql_real_escape_string($_POST['contact']); 
     
    // Au lieu de ça :
    $title = $_POST['title'];
    $content = $_POST['content'];
    $contact = $_POST['contact'];
     
    // Voici la requête : 
    $query = "INSERT INTO news (title, content, contact, timestamp) VALUES ('$title', '$content', '$contact', NOW())";
    $result = mysql_query($query) or die ("Erreur dans la requête : $query. " . mysql_error());
    J'utilise Wamp : en local ça fonctionne très bien en effectuant cette modification. Je peux insérer des textes très long, avec photos, etc sans problème.

    Mais malheureusement, ya toujours quelque chose qui cloche... Jamais rien ne fonctionne du 1er coup.
    Lorsque je rectifie le code sur le serveur FTP du site web, c'est comme si il ne prenait pas en charge "mysql_real_escape_string". Lorsque je valide le formulaire les champs sont vides sur le FTP.

    J'arrive pas à comprendre pourquoi il y a des différences sur le fonctionnement d'une application en local, et en serveur.

    En tout cas, je ne sais pas comment résoudre ce problème.
    Si quelqu'un pouvait m'aider ça serait cool.

    Merci à tous

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    As-tu un message d'erreur à l'éxécution de la requète ?
    Si oui, peux tu nous le donner.
    Si non, peux tu ajouter die($query) avant de l'éxécuter.

    Gillou.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Fais un echo $query;
    Cela te permettra de voir a quoi ressemble la requete quand elle ne fonctionne pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Alors, si tu n'arrivais pas à mettre des textes dans ta db, c'est parce que tu ne gères pas l'échappement(Wamp), c'est à dire le fait de mettre des doubles quotes ou des slash, lors des mots avec apostrophe ex :, c'est ce qui provoquais une erreur dans ta db.

    La fonction MySQL qui gère ce problème est bien mysql_real_escape_string, cela veut dire que dans WAMP, dans le php.ini les magic quote sont à Off, or chez ton provider, il est sûrement à On , donc le boulot est fait deux fois.

    Cherche sur le forum, comment mettre dans un .htaccess la fonction magic quote à off chez ton prestataire .

    Ps : le bonne pratique est bien de mettre magic quote à Off, d'ailleurs ce paramètre n'existera plus dans PHP6

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    Merci de m'avoir répondu si rapidement.

    Et merci à toi MaitrePylos pour toutes ces précisions.

    En fait, j'ai réussi à trouver une autre solution hier soir.

    J'ai remplacé la fonction "mysql_real_escape_string", par la fonction "addslashes". Et apparement cela fonctionne sur le serveur FTP.

    merci pour votre aide

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    N'oublie pas de faire la commande inverse quand tu réaffiches tes données !

Discussions similaires

  1. [MySQL] Problème de requête MySQL
    Par Viper13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/08/2007, 11h53
  2. [MySQL] Problème de requête mysql incluant un ET dans la condition
    Par dekovince dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/05/2007, 17h26
  3. [MySQL] problème de requête mysql
    Par all2me dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/05/2007, 09h21
  4. Problème de requête MYSQL avec plusieurs limit
    Par Super_baloo8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/05/2007, 18h35
  5. Probléme accent Requéte MySQL-ASP
    Par dragonfly dans le forum ASP
    Réponses: 1
    Dernier message: 30/03/2007, 09h35

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