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 :

accolade dans insert mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut accolade dans insert mysql
    Bonjour.

    Comment je peux escapé ce bout de code écrit avec des accolades?

    Je ne peux pas mettre les champs dans des variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql="
    INSERT INTO pasc ( title, descr, image, link, comentid ) 
    VALUE ('{$_POST['title']}','{$_POST['descr']}','{$_POST['image']}','{$_POST['link']}','{$_POST['comentid']}')
    ";
    si je mets mysql_real_escape_string() avant ou après les accolades, ça ne fonctionne pas.

    de l'aide serait appréciée.

    Bons voeux pour 2012.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    utilise sprintf pour faire tes requetes, il aussi grand temps de passer sous PDO ou Mysqli

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    A quoi exactement te servent les accolades dans cette requête ?

    Et je plussoie stealth, si tu peux passer à PDO ou mysqli, fais-le ça te simplifiera la vie...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Si j'utilise directement $_POST dans une requête on doit mettre des accolades.
    Si non, ça indique une erreur. Je vais peut-être refaire mon code en mysqli.
    J'ai cependant besoin de savoir dans ma situation actuelle.

    Mon problème se situe ici :

    Mon formulaire refuse d'afficher les Quotes double si mon formulaire utilise des quotes doubles. Si je décide d'écrire une petite citation, ça pose problème.
    Oui, je peux remplacer les quotes doubles par des quotes simples pour réaliser le formulaire. J'ai un autre problème. Si je dois écrire un titre qui utilise un apostrophe.

    ça ajoute une quote dans le formulaire à la place de la lire :

    Value devient : 'test'sss'

    Alors que dans la base j'aurais : test'sss

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td class="t">test</td>
    <td><input type="text" name="test" value="<?php echo $test;  ?>" /></td>
    Que faire si je dois utiliser les deux types de quotes?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ah ben j'aurais appris un truc. Personnellement j'aurais écrit ça comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql='
    INSERT INTO pasc ( title, descr, image, link, comentid ) 
    VALUE ('.mysql_real_escape_string($_POST['title']).',
    	'.mysql_real_escape_string($_POST['descr']).',
    	'.mysql_real_escape_string($_POST['image']).',
    	'.mysql_real_escape_string($_POST['link']).',
    	'.mysql_real_escape_string($_POST['comentid']).')
    ';
    Et pour ton histoire de quotes je ne vois pas trop...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Merci.

    Et changer le " par ' en début et fin de la requête.

    Je vais essayer.

    Pour les quotes dans le formulaire. Je viens de lire à propos de la conversion des entités html.

    Mon hypothèse :
    encoder les quotes pour que ça soit la version encodé dans la base de données. C'est une bonne idée mais cela fausse le nombre de caractères si on fait des calcules. Peut-être une autre possibilité, placer la quote dans la base de données mais la lire de manière encodé dans le rendu html pour que ça soit du code &...; à la place.

    Je tente l’essaie.

    -Résolu pour mysql_real_escape_string()
    - pour les formulaires, ça fera parti d'un autre post dans html.

    Merci pour l'aide.

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

Discussions similaires

  1. [Oracle] Découpage d'un fichier .txt puis insertion dans base mysql
    Par laetiheu dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 20/08/2016, 12h52
  2. problem d'insertion d'une image dans BD Mysql
    Par taouja dans le forum JDBC
    Réponses: 8
    Dernier message: 26/04/2007, 18h53
  3. Nombre d'insertions importants dans unebase mysql
    Par Jidefix dans le forum JDBC
    Réponses: 2
    Dernier message: 31/03/2007, 17h17
  4. Probl insertion date dans db mysql(odbc)
    Par MetalGearBe dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/03/2007, 16h54
  5. Réponses: 1
    Dernier message: 07/08/2006, 10h22

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