MySQL/PHP : Encodage de caractère lors de INSERT ou UPDATE ou pas ?

MySQL/PHP : Encodage de caractère lors de INSERT ou UPDATE ou pas ? - SQL/NoSQL - Programmation

Marsh Posté le 30-08-2005 à 15:13:16    

Bonjour,
 
Je développe des sites en PHP/ MySQL. A chaque insertion ou mise à jour de la base de données, j'encode le texte avant de le mettre dans la base avec la fonction suivante :
 

Code :
  1. function encode_url($nom_normal) {
  2. $nom_sans_espaces = trim ($nom_normal);
  3. $nom_sans_slashs = stripslashes ($nom_sans_espaces);
  4. $nom_code = rawurlencode ($nom_sans_slashs);
  5. return $nom_code;
  6. }


 
Ensuite, j'ai une fonction decode_url($texte_encode) qui va faire l'inverse.
Apparemment, ça serait utile pour gérer les problèmes de caractères spéciaux, les guillemets ...
 
Petite anecdote en passant : Récemment j'ai eu un ptit souci avec un client qui me disait qu'un texte était tronqué. En fait, dans la maintenance, j'ai un champ limité à 255 caractères. Lorsque je mets ce texte dans la BDD sur le champ concerné qui est un VARCHAR(255), vu que j'encode, ça rajoute des caractères, ce qui tronque le texte, forcément ...  :pt1cable:  
 
1 - Est-ce vraiment utile d'encoder avant mise à jour de la BDD ?
2 - Si oui, est-ce que vous avez d'autres fonctions de ce style, peut etre plus performantes ?

Reply

Marsh Posté le 30-08-2005 à 15:13:16   

Reply

Marsh Posté le 30-08-2005 à 16:00:50    

http://fr3.php.net/mysql_real_escape_string est censée suffire (avec un coup de stripslashes avant si magic_quotes_gpc est activé, histoire de pas faire double emploi).
 
Et à la relecture, un coup d'htmlentities/htmlspecialchars.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed