2013-03-04 3 views
2

2147483647 MYSQL 문제가 있습니다. MySQL의 Varchar 문제 2147483647

내가 힘든 VARCHAR하지 INT로 설정되어 DB: 2147483647

전화에 저장 대가로이 번호를 얻고 전화 필드에 11 자리 번호를 삽입 할 때.

또한 SERVER 1에 호스트 된 데이터베이스에서 똑같은 문제가 발생하지 않는 똑같은 데이터베이스 테이블을 가지고 있습니까?! 그게 뭐야?

은 SQL과 PHP MySQL의를의

tel_no varchar(20) utf8_general_ci Yes NULL 
mob_no varchar(20) utf8_general_ci Yes NULL 

. 예. 11 자리 숫자를 DB에 문자열로 삽입합니다.

$telno = GetValue($post['tel_no']); 
$mobno = GetValue($post['mob_no']); 

$sql = "UPDATE ".$this->dbpre."bookings SET tel_no='$telno', mob_no='$mobno'... 

도와 주시겠습니까? 나는 미쳐 가고있다!

+1

가능한 복제 http://stackoverflow.com/questions/10255724/incorrect-integer-2147483647-is-inserted-into-mysql – Hackerman

+0

의미가 없습니다. 두 플랫폼을 테스트하기 위해 전화 번호를 수락하기 위해 동일한 프런트 엔드를 사용하고 있습니까? SQL을 표시하는 데는 항상 유익합니다. –

+0

어딘가에 varchar 열을 꺼내 정수로 처리하기 시작하는 비 SQL 코드가 있습니다. – nos

답변

4

2147483647은 mysql에서 가장 큰 int 값입니다. 유형을 int에서 bigint로 변경하면됩니다.

+2

숫자가 int (부호가있는) 값이 가장 크지 만 대답은 bigint로 변경되지 않고 전화 번호를 정수로 올바르게 저장할 수 없으므로 응답이 int에서 varchar로 변경됩니다 (알 수없는 길이, 적용 가능한 경우 접두사, 서식 지정을위한 공백 문자 등). thanks @ N.B. –

+0

. 특히 [mysql_real_escape_string] (http://php.net/manual/en/function.mysql-real-escape-string.php)이 사용되지 않을 때 여러분이 국제 전화 번호에 맞을 것 같아요. – George

-1

솔루션 - >>> 데이터베이스 : BIGINTBIGINT 또는 VARCHAR를 INT의 유형을 변경합니다.