티스토리 뷰
[php 오류] 오류: SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: ''
Coding Life 2024. 5. 5. 08:13SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by num desc' at line 1
SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: ''
위의 오류는 아래의 원인으로 발생합니다.
참고하시면 좋겠어요.
오류: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by num desc' at line 1
이 오류는 MySQL 서버 버전에 맞지 않는 SQL 구문을 사용하고 있을 때 발생합니다. "order by num desc" 부분에서 오류가 발생하고 있는데, 아마도 해당 쿼리의 문제가 될 수 있습니다. 정확한 오류를 해결하기 위해서는 쿼리 전체를 봐야 합니다만, "order by" 절의 문제로 보입니다.
MySQL에서 "order by" 절을 사용할 때는 정렬하려는 열과 정렬 방향을 지정해야 합니다. "desc"는 내림차순(큰 값부터 작은 값으로)으로 정렬하겠다는 것을 나타내는데, 이것이 올바르게 사용되었는지 확인해야 합니다.
예를 들어, "num"이라는 열을 내림차순으로 정렬하려면 다음과 같이 작성해야 합니다.
$sql : select * from dbchandj.motor where (deadline='' OR deadline='0000-00-00) ' and orderdate between '2024-04-05' and '2024-05-05' and is_deleted IS NULL order by num desc
제시된 SQL 쿼리에서 오류가 발생하는 부분을 보니, "deadline" 열에서 문자열 값을 비교할 때 따옴표를 제대로 닫지 않은 것으로 보입니다. "0000-00-00"에 대한 따옴표를 닫지 않았습니다.
select * from dbchandj.motor where (deadline='' OR deadline='0000-00-00') and orderdate between '2024-04-05' and '2024-05-05' and is_deleted IS NULL order by num desc
위와 같이 따옴표를 제대로 닫아주면 쿼리가 올바르게 동작할 것입니다.
오류: SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: ''
이 오류는 날짜 값을 비교할 때 잘못된 형식의 날짜가 사용되었을 때 발생합니다. 예상치 못한 형식의 날짜가 사용되었거나 누락된 것으로 보입니다.
여기서 주목해야 할 부분은 "deadline" 열에 대한 조건부 검색입니다. "deadline" 열이 비어 있거나 "0000-00-00"이라는 날짜인 경우를 찾으려고 하고 있습니다.
그러나 오류 메시지에서 알 수 있듯이 MySQL은 ''(빈 문자열)을 유효한 날짜 값으로 처리하지 않습니다. 대신에 빈 문자열 대신 NULL을 사용해야 합니다.
따라서 쿼리를 수정하여 빈 문자열을 NULL로 변경해야 합니다.
다음은 수정된 쿼리입니다:
select * from dbchandj.motor where (deadline IS NULL OR deadline='0000-00-00') and orderdate between '2024-04-05' and '2024-05-05' and is_deleted IS NULL order by num desc
위 쿼리에서는 "deadline"이 NULL이거나 '0000-00-00'인 경우를 선택하고 있습니다. 이제 이 쿼리를 실행하면 오류 없이 결과를 얻을 수 있어야 합니다.
문제는 해결되었습니다.
결국 컬럼의 deadline을 ''으로 하면 위의 오류가 나온다는 결론에 이릅니다.
deadline IS NULL 로 해야 겠네요~
한수 배웠습니다.
'IT tech Coding > php' 카테고리의 다른 글
php 3항 연산자 실제 사용사례 보기 (0) | 2024.05.02 |
---|---|
`$stmh = $pdo->prepare($sql);`와 `$stmh = $pdo->query($sql);` 차이점 비교 (0) | 2024.03.19 |
오류: SQLSTATE[HY000]: General error: 2031 php 오류코드는 무엇인가? (0) | 2024.03.19 |
좌충우돌 코딩, 재고 자주 불러오는 부분 간소화 하기 (0) | 2024.02.21 |
양식 다시 제출 확인이 웹페이지 나를 미치게 한다. (0) | 2023.11.20 |
- Total
- Today
- Yesterday
- 프로그래머생활
- 파이썬코드줄바꿈방법
- 작업공정에 대한 코드작성
- #InnoSetup
- chatGPT3.5파이썬버전
- #소프트웨어배포
- #NSIS
- sql문장 날짜계산
- .htaccess수정
- #파이썬인스톨러
- #독립실행파일
- 코딩효율성
- #cx_Freeze
- 2분후종료오토핫키
- 테크에능한여성
- 카페24가비아phpinfo수정
- td요소중에 1행과 1열은 제외
- 효율적코딩방법
- #프로그램설치
- 오토핫키가이드
- #파이썬패키징
- Bootstrap 5
- 스크립트작성기초
- #InstallForge
- 뫄프로그래밍
- General error: 2031
- 코딩튜토리얼
- 오토핫키에디터창업데이트금지하기
- 자바스크립트한글입력시반응하도록만드는코드
- 자바스크립트 한글초성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |