2012-03-31 4 views
2

필드 (전화 번호) 값이 데이터베이스에 올바르게 입력되지 않았습니다. 즉, 값이 입력되면 값이 변경된 것 같습니다.MySQL 데이터베이스에 값을 올바르게 입력하지 않았습니다.

전화 번호의 최대 한도는 11 자입니다. HTML 폼에서 저는 4 개의 초기 디폴트 문자를 자메이카의 지역 번호 인 1876으로 설정했습니다.

<tr> 
       <td>Phone:</td> 
       <td><input type="text" name="phone" maxlength="11" value="1876" onkeypress="return isNumberKey(event)"/></td> 
       </tr> 

그리고, PHP 측 : 필드

$phone = $_POST['phone']; 

다른 모든 값들은 올바르게 입력되고있다.

어디서 잘못 되었나요?

는 UPDATE : MySQL의 테이블에서

는 열 데이터 타입은 INT이다.

그것은이 쿼리를 사용하여 삽입 한 것 : 예를 들어

$query = "INSERT INTO users (id, first_name, last_name, date_of_birth, email, phone) 
     VALUES ('$id','$first_name','$last_name','$encrypted_dob','$email','$phone')"; 

을, 나는, 말, 3025009를 입력 시도하고 데이터를 변경해야 정수 크기의 2147483647

+2

자세한 정보를 제공해야합니다. 입력 한 값의 예는 무엇이며 데이터베이스에 저장되는 것은 무엇입니까? MySQL 컬럼은 어떤 타입입니까? – Interrobang

+1

전화 번호가 올바르게 입력되지 않은 방법에 대한 예가 있습니까? 좀 더 많은 PHP 코드를 보여줘야 할 수도 있습니다. –

+0

실제로 전화로 삽입되는 내용을 알려주시겠습니까? –

답변

3

더 큰 값을 저장하려고하면 최대 2147483647 값을 저장할 수있는 데이터 유형 signed int의 문제입니다 데이터 유형의 최대 값을 저장합니다. 한도는 2147483647입니다. 정수 값을 저장하려면 적절한 데이터 유형을 사용하십시오. 귀하의 요구 사항을 충족시킬 수있는 참조는 다음과 같습니다.

datatype     largest value 

bigint unsigned    18446744073709551615 
bigint signed    9223372036854775807 
int unsigned    4294967295 
2

의 문제처럼 어떤 임의의 값을 저장하는 것 "int"를 "bigint"에 입력하면 올바른 값을 얻을 수 있습니다.

+0

대단히 감사합니다. 작동합니다. – Zeno

관련 문제