2013-01-23 3 views
0

값 "-1"을 데이터베이스에 삽입 할 수 없으므로 테이블을 설정할 필드는 int(10)입니다. 문제가 무엇인지 알 수 없습니다. 당신이 나를 도울 수. 고맙습니다.데이터베이스에 '-1'값을 삽입 할 수 없습니다.

$sql2="INSERT INTO attendance_count(username,date,count_time,appendix)VALUES('$applicant','$date1','-1','$altext')"; 
mysql_query($sql2); 
+0

*이 count_time되는 데이터 타입되어야 하는가? – World

+0

데이터 유형은 int (10)입니다. – user1902899

+2

그러면 -1을 따옴표 안에 넣으면 안됩니다. – World

답변

1

int보다 작은 따옴표를 넣지 마십시오.

+0

상관 없어요. SQL 문자열은 STRING이기 때문에 MySQL은 어떤 경우에도 구문 분석해야합니다. 따옴표는 MySQL에서 아무 것도 변경하지 않습니다. – Sven

+0

코드를 실행 한 후 작은 따옴표를 지우려고합니다. 데이터를 데이터베이스에 삽입 할 수 없습니다. 데이터베이스의 데이터가 없습니다. – user1902899

+0

int는 'SIGNED'여야합니다. Mysql은 모든 정수 유형이 선택적 (비표준) 속성 인 UNSIGNED를 가질 수 있다고 말합니다. 부호없는 유형을 사용하여 열의 음수가 아닌 숫자 만 허용하거나 열에 더 큰 상위 숫자 범위가 필요할 때 사용할 수 있습니다. 예를 들어 INT 열이 UNSIGNED 인 경우 열 범위의 크기는 같지만 끝 점은 -2147483648과 2147483647에서 최대 0 및 4294967295로 이동합니다. –

1

확실히 열이없는 UNSIGNED

+0

예. 부호없는 정수가 아닌 정수 여야합니다. – user1902899

+1

-1 원본 질문을 읽고 필드 유형이'int (10)'이라고 명시되어 있습니다. – Veger

1

문서는 문자 그대로 저장하지 않습니다라고되어 있는지 확인합니다 "-"아마 지금 다른 부호있는 정수 필드는 항상이 일을 의미합니다 문자, 을 done이고 부호 비트를 저장하면 음수는 입니다.

기호 비트의 결과로 MySQL에서 을 생성했기 때문에 여전히 숫자 앞에 마이너스 기호가 표시됩니다.

는 부호 비트를 이해하지 않으면 서명 바이트, 127 -128에서 번호를 저장하는 방법을 고려할 수 있지만 부호없는 바이트 수 있기 때문에 하나 8의의 0에서 255 상점 수 부호있는 숫자의 비트는 +/- (1은 음수, 0은 양수)를 저장하는 데 사용되고 나머지 비트는 2^7 (-128 또는 127)까지의 숫자를 제공합니다.

예를 들어 비트 1111에 부호 비트가있는 경우 -7 (음수 + 4 + 2 + 1)과 같지만 부호가없는 경우 15 (8 + 4 + 2 + 1). 여전히 저장되는 비트의 양이 동일합니다.

부호있는 숫자의 음수 바운드가 8 번째 비트를 사용할 수있는 이유는 무엇입니까? 긍정적 인 제한은 7 비트 (1이 8 번째 비트 미만)의 합으로 제한됩니다. 이것은 표현이 -0이면 0이 00000000이고 0이 이 0을 나타 내기 때문에 10000000은 으로 간주되기 때문입니다. 음수와 음수는 0과 구별되지 않으므로 음의 최상위 비트 항상 비트 자체의 값입니다 (그러나 음수).

+0

여기에 원본 [post] (http://stackoverflow.com/questions/3760822/storing-negative-number-in- decimal-field-of-mysql-table-of-version-5-0-3) –

+1

네, 같은 질문이기 때문에 여기에서 추출했습니다. 나는 그것이 받아 들여진 대답이기 때문에 잘못된 것은 없다고 생각한다. – Techie

-1

개봉 값을 입력 열 -1 ​​* SIGNED

INT(SIGNED) values can be a minimum of-2147483648 to a maximum of 2147483647 INT(UNSIGNED) values can be a minimum of 0 to a maximum of 4294967295

+0

-1 원래의 질문을 읽고 필드 유형이 phpmyadmin을 사용하는'int (10)' – Veger

+0

이라고 명시되어 있습니다. 값을 "-1"로 변경할 수 있습니다. – user1902899

관련 문제