"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~" 오류 해결

allzeroyou·2022년 1월 31일
0

🎁 오류 잡자

목록 보기
2/3

생활코딩님의 node.js-mysql 강의를 보다가 author의 crud 중 delete기능을 구현하는 강의에서 똑같이 코드를 따라쳤는데 순조롭게 실행되는 강사님과 다르게 나는 실행 도중 오류가 났다.

< 오류 발생 >
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
sqlMessage: "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 ', '2', '3', '4', '5', '6'' at line 1",
sql: "DELETE FROM author WHERE id='1', '2', '3', '4', '5', '6'"

<오류 해결 - 과정>

sql 구문에 오류가 있다는 컴파일러의 말에 sql 문을 지우고 다시 썼다. 그래도 해결이 안되길래 쿼리문을 감싸는 특수문자가 백틱이었는데 위의 코드를 보니 작은따옴표로 감쌌길래 작은따옴표로 감쌌다가(둘다 상관 없음) 새벽에 공부하는거라 코드를 이상하게 써놓고 강사님의 코드와 비교했을때 다른 점이 안보여 내 눈이 이상한가보다라고 생각하고 생활코딩 홈페이지에 있는 완성코드(author.js)를 복붙해도 오류가 해결이 안되는 것이다.

30분 구글링 결과, sql 문에서 작은따옴표를 안 붙인 경우, 변수명을 sql 키워드로 설정한 경우 등 위 오류는 코드 상의 사소한 오타가 발생시키는 오류라고 결론짓고 구글 대신 내 코드로 다시 돌아와서 코드를 찬찬히 훑어 보았다.

그 누가 등잔 밑이 어둡다고 했었나

<오류 해결 - 원인 1>


1. 생활코딩 홈페이지에서 author.js만 복붙해봤고 template.js는 안해봤는데 template.js의 form 태그를 여는 것만 작성하고 닫는 걸 작성을 안했었다.
닫는 form 태그를 추가하고 reload 해보니.. 그래도 오류가 났다.
(사실 오류를 해결할때 이것저것 시도를 기록해놓고 경우의 수를 다 따져보아야 한다. 무엇이 오류를 발생시킨지 모르니까 시도를 해보는 것인데, 이걸 try한 경우의 수를 머릿속에 다 기억해놓으면 좋은데, 알잖아. 잘 안되는거. 그래서 기록을 해놨어야 하는데.. 생활코딩 홈페이지에서 완성된 author.js 코드를 복붙해보았는데 똑같은 오류가 나길래 원래 코드로 원상복귀 시킨 후(완성 코드이니까 내가 직접 타이핑해보려고) template.js의 form의 닫는 태그를 추가했다.
즉, author.js 완성코드(오류발생x) + template.js의 form 닫는 태그(오류발생x) 의 경우는 시도를 안해본거다. 이거 했다면 잘 실행이 되었을 거고, 그럼 사실 이게 찐 오류의 원인인건데.
근데 author.js 불완전 코드(내가 작성한 걸로, 오류발생원인이 있을 수 o) + template.js form 닫는 태그(오류발생x)을 하니 오류의 하나는 해결하고 하나는 해결이 안된거다.

<오류 해결 - 원인 2>


2. author.js의 update 코드를 보니 input의 type이 생뚱맞게 update로 되어있었다🤦🏻.(사진은 수정 후 코드) input type을 submit로 value 값을 update로 주니, 오류 해결

오류 해결 후 느낀점

  1. 오류 내용을 구글링해 오류의 뉘앙스를 파악하자.
    오류 내용은 똑같아도 각 사람마다 개발환경이 다르기 때문에 그 사람이 이렇게 했을때 해결했어요! 하는 게 나한테는 도움이 될 수도 있지만 안 될수도 있다. 그렇다면 대부분 어떨때 오류가 났다는 것을 파악하자.

  2. 오류를 해결할때 이것저것 try한 경우의 수를 기록하자.
    경우의 수가 3개 이상일때는 적자. 해본거 기록하고. 안해본거 시도해보자.

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글