반응형
MySQL/MariaDB가 저장 시 자동으로 값을 변경할 수 있는 방법
MySQL/MariaDB에서 저장 시 전송되는 값과 나중에 검색할 수 있는 값이 다른 경우를 검색하고 있습니다.VARCHAR 및 *TEXT와 같은 이진 문자열이 아닌 데이터 유형이 있는 필드에만 관심이 있습니다.
저장된 가치를 얼마나 신뢰할 수 있는지 좀 더 포괄적으로 알고 싶습니다.이는 유효성 검사 시 특히 위험하므로 출력에 특정 문자(아래 이스케이프 문자 예제와 같이)가 없는 경우에 특히 유용합니다.
이는 다음과 같이 요약됩니다. 출력되지 않는 입력 문자열을 생성할 수 있습니까(또는 환경을 정의할 수 있습니까).<value>
두 번째 진술서에서?
INSERT INTO t SET v = <value>, id = 1; // success
SELECT v FROM t WHERE id = 1;
제가 생각할 수 있는 것들:
- 이스케이프를 포함하는 문자열(
\a
→a
) - 너무 길면 잘림
- 입력을 지원하지 않는 테이블의 문자 인코딩
자동으로 오류가 발생하는 경우 SQL 모드가 설정된 정도에 따라 달라질 수 있습니다(예: 마지막 두 예).
당신의 의견에 미리 감사드립니다!
문자열과 정수를 사용하면 선택한 문자 집합에 해당 숫자 또는 문자의 이진 표현이 저장되므로 모든 데이터베이스가 표준 목적을 수행할 수 있습니다.
Decimal Double 값과 Single 값은 서로 다릅니다. 이는 직접 저장할 수 없기 때문에 프랙탈이 소수 표현을 볼 수 있기 때문입니다.
그것 또한 기준을 따르지만, 당신은 그것을 고려해야 합니다.
언급URL : https://stackoverflow.com/questions/62453875/ways-mysql-mariadb-could-silently-be-changing-values-when-storing
반응형
'programing' 카테고리의 다른 글
텍스트 입력을 편집 불가능으로 만들려면 어떻게 해야 합니까? (0) | 2023.08.15 |
---|---|
X509PK 지원IPathv1 inxws-Spring-WS용 보안 (0) | 2023.08.15 |
요소의 중심을 수평 및 수직으로 맞추는 방법 (0) | 2023.08.15 |
Angular2+ 자동 포커스 입력 요소 (0) | 2023.08.15 |
HTML로 애니메이션 로드를 활성화하고 있습니다.양식 제출 시작 (0) | 2023.08.15 |