Valeur insérée en tant que 2147483647 dans la base de données

Tous les numéros de téléphone, je suis en train d'essayer d'entrer dans ma base de données sont insérées comme 2147483647.

Le champ de base de données est un integer(11).

Avant le numéro de téléphone est inséré, il passe à travers le code suivant afin de supprimer tous les espaces, tirets et parenthèses:

if (!empty($hphone)) $phone = $hphone;
else if (!empty($HomePhone)) $phone = $HomePhone;
else if (!empty($Phone1)) $phone = $Phone1;
$phone = preg_replace("/[^0-9]/", "", $phone);

Pourquoi est-il insérer le numéro de téléphone comme 2147483647 à chaque fois, peu importe ce que le numéro de téléphone est?

Magasin de téléphone, le numéro de la chaîne (varchar), non pas comme un entier.
Qui évidemment ne va pas résoudre son problème
Noir: ce que votre hypothèse est basée sur?
Pouvez-vous montrer le code où $hphone est?
Je pense que le problème est qu'il essaye de le stocker sous forme de chaîne, malgré qu'il soit un entier. Serait la suppression des guillemets simples de la valeur dans la requête d'insertion de corriger ce problème ou dois-je le jeter comme un entier via PHP?

OriginalL'auteur scarhand | 2014-02-27