Problème php caractère spéciaux

Bonjour,

Voila j'ai un petit problème dans ma requete sql et je pense que cela vient du addslashes est il bien mis svp

 "	UPDATE ARRET_CHAINE
			SET 	TYPE = '$TYPE',
				CAUSE = '$CAUSE',
				DEMANDE = '$DEMANDE',
				COMPLEMENT_INFORMATION = '".addslashes($COMPLEMENT)."',
				IMPUTATION = '$IMPUTATION',
				HEURE_DEBUT = '$H_DEBUT',
				HEURE_FIN = '$H_FIN' 
			WHERE NUMERO_ARRET_CHAINE = $num";


merci d'avance
Configuration: Windows 2003
Internet Explorer 7.0

5 réponses

  1. Contributeur
    Bonjour,

    Le sujet et la question me semble pas corresponde à ce que vous souhaiter attendre comme réponse.

    je m'explique : qu'est ce que la fonction addslashes() vient faire dans un sujet "
    problème php caractère spéciaux" ?

    @+
    1. alors quand je fais la requete suivante

      " UPDATE ARRET_CHAINE
      SET TYPE = '$TYPE',
      CAUSE = '$CAUSE',
      DEMANDE = '$DEMANDE',
      COMPLEMENT_INFORMATION = '".addslashes($COMPLEMENT)."',
      IMPUTATION = '$IMPUTATION',
      HEURE_DEBUT = '$H_DEBUT',
      HEURE_FIN = '$H_FIN'
      WHERE NUMERO_ARRET_CHAINE = $num";

      sachant que $COMPLEMENT = 'Arret d'urgence: silhouette 8 enclenchée'

      pourquoi sql me renviot cette erreur dans ce cas?

      Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''Arret d\'urgence: silhouette 8 enclenchée', IMPUTATION = 'Up montage (85)', HEURE_DEBUT = '08:16:29', HEURE_FIN = '08:17:45' WHERE NUMERO_ARRET_CHAINE = 1'., SQL state 37000 in SQLExecDirect in D:\GTP\www\GTP\1_Arret_chaine\Modif_et_Suppr.php on line 97
      Erreur SQL :
      UPDATE ARRET_CHAINE SET TYPE = 'Arrêt chaîne', CAUSE = 'Problème de process/moyens', DEMANDE = 'Pupitre gestion de chaîne', COMPLEMENT_INFORMATION = 'Arret d\'urgence: silhouette 8 enclenchée', IMPUTATION = 'Up montage (85)', HEURE_DEBUT = '08:16:29', HEURE_FIN = '08:17:45' WHERE NUMERO_ARRET_CHAINE = 1

      peut etre est ce plus explicite
      1. Bonjour

        d'après ce qu'on voit sur le web, pour échapper les apostrophes pour access, il ne faut pas faire addslashes mais les doubler (remplacer chaque ' par '')
        str_replace("'","''",$COMPLEMENT)
        je n'ai pas testé