Caractères spéciaux dans SQL

Petit nouveau ! | 4 Messages

15 sept. 2006, 17:20

Bonjour à tous!

Je ne connais pas le langage sql et je souhaiterais connaître les caractères spéciaux utilisés dans le sql afin d'éviter de les utiliser dans les champs de ma base de données sql...

Merci de me dire si je ne suis pas compréhensible! :roll:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 sept. 2006, 17:27

En ce qui concerne le contenu de ta base, très peu de caractères sont interdit. Il suffit juste de prende garde à les déspécialiser.

En ce qui concerne les nom des champs, a part les ' et autres `, je ne pense pas qu'il y ai de grosses interdiction mais d'un point de vue pérénité et portabilité, je te conseille de suivre la convention de nommage PHP :
- suite de lettre, chiffre, '-' ou '_'
- commence par une lettre
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 4 Messages

15 sept. 2006, 17:33

Merci Zeus!

Comment on déspécialise les caractères spéciaux ?

Petit nouveau ! | 4 Messages

15 sept. 2006, 18:09

addslash() / stripslash() => si la methode get_magic_quotes_gpc() est a 0
si elle est a 1, ça veut dire que apache est chargé avec le module magic_quote qui backslash automatiquement les caracteres "dangereux"

htmlentities() pour convertir les caracteres codables en valeurs html par ex htmlentities('éè') retourne 'éè'
ainsi quelqu'un qui essaiera d'injecter des données dans tons erveur se verra virer tout les codes js, les ", '
et cela n'empechera pas de les afficher dans la page car ils seront tout de meme "presents" en codage html

evidemment il faut lui fournir l'option adequate pour les simple et doubles quotes ' et "

de même en sql je te conseille d'entourer tes champs du caractere ` pour eviter certaines erreures sql, et d'entourer bien sur une fois mes mesures suivies tes valeures insérées par un " ou '
pour eviter qu'un ptit malin profite du fait que tu n'ai pas entouré tes valeurs pour inserer des mots passes partout en anglais utilisés par la syntaxe sql, comme UNION ALL, AND, OR, SELECT, WHERE, UPDATE...

Petit nouveau ! | 4 Messages

15 sept. 2006, 18:21

Oups! :shock:

Merci Ravi mais j'ai bien précisé que je ne connaissais pas le langage sql...

Je m'occupe pour l'instant de la saisie dans une base sql et je dois voir quels caractères je peux utiliser sans risque... Comme la base n'est pas terminé et un peu chancelante, nous préférons assurer nos arrières en utilisant le moins de caractères spéciaux possible dans les champs de texte mais j'en ai quand même besoin un peu!

C'est pourquoi je demandais quels caractères sont spéciaux pour sql et comment déspécialiser à Zeus. Peux-être m'as-tu donné la réponse mais je ne peux l'interpréter alors... pourrais-tu me dire en terme plus schématique?

Je ne vais pas aller dans le code moi-même de toute façon, mais c'est pour comprendre en gros ce que implique comme boulot de "déspécialiser".

Merci de votre patience! :D

Mammouth du PHP | 19672 Messages

15 sept. 2006, 20:17

Note de modération : claudia.leduc, une des règles générales sur beaucoup des forums qu'on trouve sur Internet, ce sont des règles de ce qu'il est convenu de nommer la Nettiquette. Parmi ces règles, il y en a une qui est en général relativement courante qui interdit le "cross-posting", opération qui consiste à poser la même quetion sur des forums multiples. On aime en général pas beaucoup ça parce que trop souvent, le fautif obtient la réponse recherchée sur un forum pendant que sur les autres forums, d'autres vont éventuellement fournir des réponses pour rien.

Je mets ceci sur le compte de ton inexprérience, essaye de ne pas renouveller le cas a l'avenir et quand tu auras eu une réponse appropriée ici, ce qui ne saurait tarder à mon sens, tu auras l'amabilité d'aller sur l'autre mettre un mot.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

18 sept. 2006, 10:00

Bonjour Cyrano,

En effet, je ne me souvenais pas que l'on ne doit pas faire cela. Je vais conclure ce fil (et celui sur Mysql) mais je ne sais pas trop comment faire, si le délestage sert à ça... En passant, le règlement que tu mets dans ta signature ne marche pas!

Désolé pour cela. :?

Merci à tous pour votre aide! :D