D'ailleurs c'est ce que tu devrais faire normalement plutôt que de cadrer à la barbare
bon je voulais mettre "caster" mais la correction auto du tel n'en fait qu'a sa tête
la différence entre varchar et int, ben c'est pas pareil
sérieusement, les type dit numérique (int, decimal etc) servent à effectuer des calculs.
les types texte (varchar, text) servent à "représenter". Par exemple dans : "je vend 412kg d'huitre numéro 3". on se fou de faire des calculs sur les chiffres, c'est du littérale. Par contre stocker des entiers, des float, ou numeric pour représenter le prix d'un article afin de faire le calcul du prix dans la requête SQL à un sens.
dans ton cas les chiffres n'ont aucune valeur en tant que chiffre, ils sont une représentation, le varchar correspond. tu aurais très bien pu mettre un char(13) vu que normalement tu a toujours 13 chiffres (il me semble).
Après, coté "CGI" de toute façon tu reçois des chaines de caractère du formulaire (chiffre pas c'est un caractère qui est entré dans le formulaire) et après tu les traites "au besoin".
Avec un varchar tu va mettre ton champs dans un varchar tu va ajouter un index full text dessus et tu va avoir une recherche du tonnerre
Tu pourrais aussi utiliser un entier et l'utiliser en clef primaire vu que ce numéro est unique

(ça peux être une bonne idée de conception, après il parait qu'il faut éviter les données significative en tant que clef primaire, ceci c'est une bonne clef candidate ^^)
il y a plein de possibilité qui s'offre a toi, trouve celle qui te va.
Si tu reste tel quel pas de cast, utilise l'une des fonctions ci dessus ou bien un preg_match avec un masque strict que 13 chiffres pour le valider
@+