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 :

insertion caractères spéciaux dans base ACCESS


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut insertion caractères spéciaux dans base ACCESS
    Bonjour à tous,
    voici mon soucis : lorsque je veux rentrer dans ma base des champs textes ou il y a des quotes ou des sauts de ligne, cela me fait planter l'insertion car en faite ca coupe mon champs sql de requête. Comment résoudre cela ? J'ai bien essayer avec la fonction addslashes mais sans aucun résultat .. Voici la partie de mon code avec le champ sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "INSERT INTO T_TACHE (date_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache,yannick,aurelien,robert,daniel,jonas,marielle)
    				VALUES (#".$dateUS."#, '".$tache."', '".$dossier."', '".$client."', '".$details."', ".$valider.", ".$yannick.", ".$aurelien.", ".$robert.", ".$daniel.",
    				".$jonas.", ".$marielle." ) " ;
    				odbc_exec($cnx,$sql) or die('Erreur dans : '.$sql.' ');

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour les guillemets et apostrophes, c'est bien addslashes() qu'il faut utiliser.

    Peux-tu nous montrer ce que tu as fait ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut toujours pareil !
    J'ai bien mis la fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // INSERTION DE LA TACHE !
    			$sql="	INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) 
    					VALUES(".$id_tache.",'".addslashes($tache)."','".addslashes($dossier)."','".addslashes($client)."','".addslashes($details)."',".$valider.")
    Mais toujours le même problème :
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''*** \' ***,0)'., SQL state 37000 in SQLExecDirect in ******\valider_tache.php on line 66
    erreur sql dans : INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) VALUES(316,'brtbrtbrtbrt','****','******','** \' ***',0).
    Les étoiles représentent une chaine de caractère quelconques sans caractère spécial.

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    tu as remarqué que dans l'erreur il manque une apostrophe pour cloturer ton avant dernière chaine ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut
    je viens de remarquer mais cela ne change rien car en faite c'est moi qui est mal recopier, il y a bien un guillemet a la fin de la chaine de caractère ! Donc a tu une idée pour résoudre ce problème ?

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Trouve la partie de la requete qui pose probleme.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Trouve la partie de la requête qui pose problème.
    Je sais que la partie qui déconne est celle qui a des quottes dans la chaine de caractères... J'ai développé dans un autre projet en php avec mysql un site web qui fonctionne très bien, j'utilise cette même fonction pour les caractères spéciaux et il n'y a aucun soucis avec la BDD, est-ce que cela viendrait de ACCESS ? Comment résoudre cela ? Merci !

  8. #8
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut solution
    J'ai trouvé une solution qui a l'air de fonctionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="	INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) 
    					VALUES(".$id_tache.",'".htmlspecialchars($tache,ENT_QUOTES)."','".htmlspecialchars($dossier,ENT_QUOTES)."',
    					'".htmlspecialchars($client,ENT_QUOTES)."','".htmlspecialchars($details,ENT_QUOTES)."',".$valider.")

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Petite interrogation.
    Est ce que ACCESS ne nécessite pas d'échapper les apostrophes en les doublant (style magic_quotes_sybase) ?
    Pourfendeur de singletons en croisade

Discussions similaires

  1. [Lazarus] [1.0.4/Win XP] Caractères spéciaux dans base de données
    Par chris78320 dans le forum Lazarus
    Réponses: 12
    Dernier message: 12/01/2013, 15h57
  2. Réponses: 5
    Dernier message: 16/06/2011, 15h18
  3. [MySQL] Insertion caractère spéciaux dans la base
    Par theNoob dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/09/2009, 15h30
  4. [MySQL] Insertion caractères spéciaux dans bdd
    Par ljuboja78 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/02/2009, 11h56
  5. caractère spéciaux dans nom de base
    Par slefevre01 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/08/2005, 18h41

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