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 :

Problème d'insertion avec apostrophe [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut Problème d'insertion avec apostrophe
    Bonsoir,
    Il m'es timpossible de faire des enregistrements dans ma base mysql, lorsqu'il ya des apostrophes.
    Comment faire pour y remédier?
    you have an error in your sql syntax. Check the manual that corresponds to your mysql sderver version for the right syntax to use near 'air du temps' and Numcli<>'7'' at line 1
    merci.

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    c'est addslashes() qu'il faut utiliser
    (sur php.net pour la doc !!)

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377

  4. #4
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    j'ai essyé d'utiliser addslashes mais sans succès!

  5. #5
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    là il nous faut du code.

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    $updateSQL = sprintf("UPDATE client SET Raison_sociale=%s, Adresse=%s, telephone=%s, Gestionnaire=%s, Activite=%s WHERE NumCli=%s",
    GetSQLValueString(strtoupper(addslashes($HTTP_POST_VARS['raison'])), "text"),
    GetSQLValueString($HTTP_POST_VARS['adresse'], "text"),
    GetSQLValueString($HTTP_POST_VARS['telephone'], "text"),
    GetSQLValueString($HTTP_POST_VARS['gestionnaire'], "text"),
    GetSQLValueString($HTTP_POST_VARS['activite'], "text"),
    GetSQLValueString($HTTP_POST_VARS['NumCli'], "int"));

    mysql_select_db($database_connection, $connection);
    $Result1 = mysql_query($updateSQL, $connection) or die(mysql_error());

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    utilise addslashes au dernier moment, dans ton mysql_query ou juste avant, sur l'intégralité de ta requête.

  8. #8
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    Pas d'amélioration.

    mysql_select_db($database_connection, $connection);
    $Result1 = mysql_query(addslashes($updateSQL), $connection) or die(mysql_error());

  9. #9
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu as une erreur mysql ?

    Affiche ta requête telle qu'elle est envoyée au serveur stp

  10. #10
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    affiche ta requete final ici.

    de plus je rappelle qu'il faut écrire ne pas oublier les =' ' ...

  11. #11
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    erreur:
    Erreur de syntaxe près de 'bolo' and NumCli<>'134'' à la ligne 1

  12. #12
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par Maxoo
    affiche ta requete final ici.
    la requete que tu envoies à ta BDD.

  13. #13
    Invité
    Invité(e)
    Par défaut
    NumCli est-il de type int?

    Si oui,

    remplace

    "UPDATE client SET Raison_sociale=%s, Adresse=%s, telephone=%s, Gestionnaire=%s, Activite=%s WHERE NumCli=%s",
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ("UPDATE client SET Raison_sociale=%s, Adresse=%s, telephone=%s, Gestionnaire=%s, Activite=%s WHERE NumCli=%d",
    Dans ton sprintf et regarde ce que ça donne.

  14. #14
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    en faisant un echo pour afficher ma requete, rien ne s'affiche:
    COmme NumCli est de type int, j'ai mis %d mais pas de changement.

  15. #15
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Gnii ?? tu fais un echo de ta variable et elle s'affiche pas ?
    tu es débutant ou bien ??

  16. #16
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    après avoir ajouté le addslaches comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	  $Result1 = mysql_query(addslashes($updateSQL), $connection) or die(mysql_error());
    lorsque je ne mets pas d'apostrophe dans mes champs, j'ai l'erreur ci-dessous qui apparait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur de syntaxe près de '\'mirabeller\', Adresse=\'bp 1484\', telephone=\'775544\', Gesti' à la ligne 1

  17. #17
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    je confirme tu es débutant en PHP, refile tout ton code ici.

  18. #18
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    je ne suis pas débutante, mais là, je suis bloquée

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    if  ( (isset ($_POST['raison'])) and  (isset ($_POST['telephone']))  )
    	{
    mysql_select_db($database_connection, $connection);
    $query_rscl = "SELECT * FROM client WHERE Raison_sociale = '".trim($_POST['raison'])."' and telephone='".trim($_POST['telephone'])."' and Adresse='".trim($_POST['adresse'])."'  and Gestionnaire='".trim($_POST['gestionnaire'])."' and  Activite='".trim($_POST['activite'])."'";
    $rscl = mysql_query($query_rscl, $connection) or die(mysql_error());
    $row_rscl = mysql_fetch_assoc($rscl);
    $totalRows_rscl = mysql_num_rows($rscl);
    if ($totalRows_rscl==0)
      {
     
    	if ((isset($HTTP_POST_VARS["MM_update"])) && ($HTTP_POST_VARS["MM_update"] == "form1"))
    	 {
     $updateSQL = sprintf("UPDATE client SET Raison_sociale=%s, Adresse=%s, telephone=%s, Gestionnaire=%s, Activite=%s WHERE NumCli=%s",
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['raison']), "text"),
    						   GetSQLValueString($HTTP_POST_VARS['adresse'], "text"),
    						   GetSQLValueString($HTTP_POST_VARS['telephone'], "text"),
    						   GetSQLValueString($HTTP_POST_VARS['gestionnaire'], "text"),
    						   GetSQLValueString($HTTP_POST_VARS['activite'], "text"),
    						   GetSQLValueString($HTTP_POST_VARS['NumCli'], "int"));
    	//echo $updateSQL ;
     
    	  mysql_select_db($database_connection, $connection);
     
     
    	  $Result1 = mysql_query($updateSQL, $connection) or die(mysql_error());
     
    	   if ($Result1>0)
    					   {
    						 $message='Modification effectuée!' ;
    				   }
    				   else
    				   {
    						 $message='Il y\'a un problème au niveau de l\'exécution de la requête';
    				   }

  19. #19
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Je pense qu'il faut faire le addslashes sur chacune des valeurs à mettre en base pas sur la requête entière...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  20. #20
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    j'ai mis les addslaches au niveau des champs de type chaines de caractères. Lorsque il n'ya pas d'apostrophes, il n'ya pas de problèe, mais lorsqu'il ya en a, la mise à jour est impossible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $updateSQL = sprintf("UPDATE client SET Raison_sociale=%s, Adresse=%s, telephone=%s, Gestionnaire=%s, Activite=%s WHERE NumCli=%s",
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['raison']), "text"),
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['adresse']), "text"),
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['telephone']), "text"),
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['gestionnaire']), "text"),
    						   GetSQLValueString(addslashes($HTTP_POST_VARS['activite']), "text"),
    						   GetSQLValueString($HTTP_POST_VARS['NumCli'], "int"));

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. [MySQL] Insertion avec le caratère apostrophe
    Par King_T dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/04/2008, 11h04
  2. [MySQL] Problème récupération données avec apostrophe
    Par Nata31 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 21/07/2006, 16h26
  3. Problème d'insertion avec un champ Date/Heure ?
    Par bds2006 dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/06/2006, 10h37
  4. Problème d'INSERT avec caractères accentués: mysql 5.0
    Par yizashi dans le forum Installation
    Réponses: 2
    Dernier message: 05/04/2006, 10h26
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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